Show simple item record

Files in this item

Thumbnail

Item metadata

dc.contributor.authorRocha, Rodrigo C. O.
dc.contributor.authorSprokholt, Dennis
dc.contributor.authorFink, Martin
dc.contributor.authorGouicem, Redha
dc.contributor.authorSpink, Tom
dc.contributor.authorChakraborty, Soham
dc.contributor.authorBhatotia, Pramod
dc.date.accessioned2022-09-07T12:30:01Z
dc.date.available2022-09-07T12:30:01Z
dc.date.issued2022-06-09
dc.identifier278807512
dc.identifierb5616bee-7962-4f57-937d-a59d46788ae4
dc.identifier85132294823
dc.identifier000850435600059
dc.identifier.citationRocha , R C O , Sprokholt , D , Fink , M , Gouicem , R , Spink , T , Chakraborty , S & Bhatotia , P 2022 , Lasagne : a static binary translator for weak memory model architectures . in Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2022) . ACM , pp. 888–902 , 43rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2022) , San Diego , California , United States , 13/06/22 . https://doi.org/10.1145/3519939.3523719en
dc.identifier.citationconferenceen
dc.identifier.isbn9781450392655
dc.identifier.otherORCID: /0000-0002-7662-3146/work/118799805
dc.identifier.urihttps://hdl.handle.net/10023/25964
dc.descriptionFunding: This work was supported by a UK RISE Grant.en
dc.description.abstractThe emergence of new architectures create a recurring challenge to ensure that existing programs still work on them. Manually porting legacy code is often impractical. Static binary translation (SBT) is a process where a program’s binary is automatically translated from one architecture to another, while preserving their original semantics. However, these SBT tools have limited support to various advanced architectural features. Importantly, they are currently unable to translate concurrent binaries. The main challenge arises from the mismatches of the memory consistency model specified by the different architectures, especially when porting existing binaries to a weak memory model architecture. In this paper, we propose Lasagne, an end-to-end static binary translator with precise translation rules between x86 and Arm concurrency semantics. First, we propose a concurrency model for Lasagne’s intermediate representation (IR) and formally proved mappings between the IR and the two architectures. The memory ordering is preserved by introducing fences in the translated code. Finally, we propose optimizations focused on raising the level of abstraction of memory address calculations and reducing the number offences. Our evaluation shows that Lasagne reduces the number of fences by up to about 65%, with an average reduction of 45.5%, significantly reducing their runtime overhead.
dc.format.extent15
dc.format.extent890457
dc.language.isoeng
dc.publisherACM
dc.relation.ispartofProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2022)en
dc.subjectBinary translationen
dc.subjectMemory modelen
dc.subjectCompileren
dc.subjectQA75 Electronic computers. Computer scienceen
dc.subjectDASen
dc.subjectNISen
dc.subject.lccQA75en
dc.titleLasagne : a static binary translator for weak memory model architecturesen
dc.typeConference itemen
dc.contributor.institutionUniversity of St Andrews. School of Computer Scienceen
dc.identifier.doihttps://doi.org/10.1145/3519939.3523719
dc.date.embargoedUntil2022-06-13
dc.identifier.urlhttp://sigplan.org/OpenTOC/en


This item appears in the following Collection(s)

Show simple item record