Fri 30 Oct 2015 13:30 - 13:52 at Grand Station 2 - 12. Performance Chair(s): Tiark Rompf

To maximize run-time performance, programmers often specialize their code by hand, replacing library collections and containers by custom objects in which data is restructured for efficient access. However, changing the data representation is a tedious and error-prone process that makes it hard to test, maintain and evolve the source code. We present an automated and composable mechanism that allows programmers to safely change the data representation in delimited scopes containing anything from expressions to entire class definitions. To achieve this, programmers define a transformation and our mechanism automatically and transparently applies it during compilation, eliminating the need to manually change the source code. Our technique leverages the type system in order to offer correctness guarantees on the transformation and its interaction with object-oriented language features, such as dynamic dispatch, inheritance and generics. We have embedded this technique in a Scala compiler plugin and used it in four very different transformations, ranging from improving the data layout and encoding, to retrofitting specialization and value class status, and all the way to collection deforestation. On our benchmarks, the technique obtained speedups between 1.8x and 24.5x.

Fri 30 Oct

Displayed time zone: Eastern Time (US & Canada) change

13:30 - 15:00
12. PerformanceOOPSLA at Grand Station 2
Chair(s): Tiark Rompf Purdue & Oracle Labs
13:30
22m
Talk
Automating Ad-hoc Data Representation TransformationsOOPSLA Artifact
OOPSLA
Vlad Ureche EPFL, Switzerland, Aggelos Biboudis University of Athens, Yannis Smaragdakis University of Athens, Martin Odersky EPFL, Switzerland
Pre-print Media Attached
13:52
22m
Talk
Tracing vs. Partial Evaluation: Comparing Meta-compilation Approaches for Self-Optimizing InterpretersOOPSLA Artifact
OOPSLA
Stefan Marr INRIA, France, St├ęphane Ducasse INRIA, France
Link to publication Media Attached
14:15
22m
Talk
Effectively Mapping Linguistic Abstractions for Message-Passing Concurrency to Threads on the Java Virtual Machine
OOPSLA
Ganesha Upadhyaya Iowa State University, USA, Hridesh Rajan Iowa State University, USA
DOI Pre-print Media Attached
14:37
22m
Talk
Partial Evaluation of Machine Code
OOPSLA
Venkatesh Srinivasan University of Wisconsin-Madison, USA, Thomas Reps University of Wisconsin - Madison and Grammatech Inc.
DOI Media Attached