000228518 001__ 228518
000228518 005__ 20190317000724.0
000228518 0247_ $$2doi$$a10.1145/3062341.3062346
000228518 022__ $$a0362-1340
000228518 02470 $$2ISI$$a000414334200014
000228518 037__ $$aCONF
000228518 245__ $$aMiniphases: Compilation using Modular and Efficient Tree Transformations
000228518 260__ $$aNew York$$bAssoc Computing Machinery$$c2017
000228518 269__ $$a2017
000228518 300__ $$a16
000228518 336__ $$aConference Papers
000228518 520__ $$aProduction compilers commonly perform dozens of transformations on an intermediate representation. Running those transformations in separate passes harms performance. One approach to recover performance is to combine transformations by hand in order to reduce number of passes. Such an approach harms modularity, and thus makes it hard to maintain and evolve a compiler over the long term, and makes reasoning about performance harder. This paper describes a methodology that allows a compiler writer to define multiple transformations separately, but fuse them into a single traversal of the intermediate representation when the compiler runs. This approach has been implemented in a compiler for the Scala language. Our performance evaluation indicates that this approach reduces the running time of tree transformations by 35\% and shows that this is due to improved cache friendliness. At the same time, the approach improves total memory consumption by reducing the object tenuring rate by 50\%. This approach enables compiler writers to write transformations that are both modular and fast at the same time.
000228518 6531_ $$adotty
000228518 6531_ $$ascala
000228518 6531_ $$acompiler
000228518 700__ $$0248093$$aPetrashko, Dmytro$$g233192
000228518 700__ $$aLhoták, Ondrej
000228518 700__ $$0241835$$aOdersky, Martin$$g126003
000228518 7112_ $$aPLDI$$cBarcelona, Spain$$dSun 18 - Fri 23 June 2017
000228518 773__ $$j52$$k6$$q201-216$$tAcm Sigplan Notices
000228518 8564_ $$s298856$$uhttps://infoscience.epfl.ch/record/228518/files/paper.pdf$$yn/a$$zn/a
000228518 909C0 $$0252187$$pLAMP$$xU10409
000228518 909CO $$ooai:infoscience.tind.io:228518$$pconf$$pIC$$qGLOBAL_SET
000228518 917Z8 $$x233192
000228518 937__ $$aEPFL-CONF-228518
000228518 973__ $$aEPFL$$rREVIEWED$$sPUBLISHED
000228518 980__ $$aCONF