Wed 17 Jul 2019 18:00 - 19:30 at Mancy - Poster session

One of the main challenges in JIT compilation arises from the fact that the time spent in compilation, which includes program-analysis time, gets added to the execution-time of the program. Hence, it is important that the time spent in JIT compilation is not prohibitively high. Consequently, typical JIT compilers in popular virtual machines (such as the HotSpot JVM and the Eclipse OpenJ9) perform imprecise analyses and end-up sacrificing precision for efficiency. An alternative to performing imprecise analyses during JIT compilation is to perform expensive whole-program analyses during static compilation, and use the results during JIT compilation. However, the runtime libraries (such as the JDK) on the machine where the program is executed may differ from those available statically on the machine where the program is compiled. As a result, though this alternative does not impact the JIT compilation time much, the static analyses have to handle calls to library methods in a conservative manner, which may again lead to imprecision. Thus, both the practical alternatives – (i) whole-program analysis at compile-time and (ii) fast analysis during JIT compilation – may lead to imprecise results.

In our recent paper (accepted for publication in ACM TOPLAS; preprint available at: http://www.cse.iitm.ac.in/~krishna/preprints/toplas19/toplas19.pdf), we propose a two-stage analysis framework called PYE (Precise-Yet-Efficient) for analyzing programs written in languages with a static+JIT mode of compilation. The PYE framework relies on a novel notion of conditional values, which denote dependencies on the unavailable portions of the program being analyzed (for example, the library while analyzing the application). PYE analyzes an application using two inter-related components: the partial-analyzer (added to the static Java compiler), and the fast-precise-analyzer (added to the C2 compiler of the HotSpot JVM). The partial-analyzer statically generates partial summaries (consisting of conditional values) for the methods of a program, which are then sent to the machine on which the program is to be executed. During JIT compilation, the fast-precise-analyzer reads the application and library partial summaries, resolves the dependencies between the two, and generates final analysis results.

We have instantiated PYE for performing two non-trivial analyses: points-to analysis for null-check elimination and escape analysis for synchronization elimination, and evaluated the instantiations by comparing them with the existing analyzers of C2. The results assert that PYE effectively addresses the three challenges that can be envisaged in such a multi-step analysis framework: (i) It handles the possible imprecision arising out of the unavailable parts of a program while performing precise whole-program analyses. (ii) It makes sure that the generated partial summaries are succinct and do not lead to significant storage overhead. (iii) It loads and resolves the partial summaries efficiently without increasing the time spent during JIT compilation.

There are, however, more challenges to solve, for bringing the proposed approach into practice. Two such important associated requirements are: (i) the results generated by the partial-analyzer be transferred to the target machine along with the class files; and (ii) the results be verified at the target machine before using them to perform optimizations. In this talk, we first describe the PYE framework and its instantiations with brief results of the same. We then discuss some initial directions to explore the solutions to the above challenges. We propose to solve these challenges in a modular manner, in the context of the Eclipse OpenJ9 virtual machine.

Wed 17 Jul
Times are displayed in time zone: Greenwich Mean Time : Belfast change

18:00 - 19:30
Poster sessionPosters at Mancy
18:00
90m
Poster
MagpieBridge: A General Approach to Integrating Static Analyses into IDEs and EditorsECOOP posterDemonstration
Posters
Linghui LuoPaderborn University, Julian DolbyIBM Research, Eric BoddenHeinz Nixdorf Institut, Paderborn University and Fraunhofer IEM
File Attached
18:00
90m
Poster
A Parallel Spreadsheet Interpreter With Cycle Detection
Posters
Alexander Asp BockIT University of Copenhagen
18:00
90m
Poster
Specifying I/O using Abstract Nested Hoare Triples in Separation LogicFTfJP posterDemonstration
Posters
Willem PenninckxKU Leuven, Amin Timanyimec-Distrinet KU-Leuven, Bart JacobsKU Leuven
18:00
90m
Poster
Reliable State Machines: A Framework for Programming Reliable Cloud ServicesECOOP posterDemonstration
Posters
Suvam MukherjeeIndian Institute of Science, Nitin John RajInternational Institute of Information Technology, Hyderabad, Krishnan GovindrajMicrosoft Research, Pantazis DeligiannisMicrosoft Research, Chandramouleswaran RavichandranMicrosoft Azure, Akash LalMicrosoft Research India, Aseem RastogiMicrosoft Research, Raja KrishnaswamyMicrosoft Azure
18:00
90m
Poster
RML: Runtime Monitoring LanguageVORTEX poster
Posters
Luca FranceschiniDIBRIS, University of Genova, Italy
File Attached
18:00
90m
Poster
Precise, Efficient and Secure Just-In-Time Analysis of Java ProgramsAORTA poster
Posters
Manas ThakurIIT Madras, V Krishna NandivadaIIT Madras
18:00
90m
Poster
Fling---A Fluent API GeneratorECOOP poster
Posters
Yossi GilTechnion—Israel Institute of Technology, Ori RothTechnion
File Attached
18:00
90m
Poster
TornadoVM: Dynamic Optimisation of Heterogeneous Java AccelerationAORTA posterDemonstration
Posters
Juan FumeroUniversity of Manchester, UK, Michail PapadimitriouUniversity of Manchester, UK, Christos KotselidisUniversity of Manchester, UK
File Attached
18:00
90m
Poster
Static Analysis for Asynchronous JavaScript ProgramsECOOP poster
Posters
Thodoris SotiropoulosAthens University of Economics and Business, Benjamin LivshitsImperial College London, UK
18:00
90m
Poster
To Async or Not to Async: Better Cooperative Multithreading is the Answer
Posters
18:00
90m
Poster
TinyCORP: A Calculus for Context-Oriented Reactive ProgrammingCOP poster
Posters
Tetsuo KaminaOita University, Tomoyuki AotaniTokyo Institute of Technology
18:00
90m
Poster
Semantic Patches for Java Program TransformationECOOP posterDemonstration
Posters
Hong Jin KangSchool of Information Systems, Singapore Management University, Ferdian Thung, Julia LawallInria/LIP6, Gilles MullerLIP6-INRIA/UPMC, Lingxiao JiangSingapore Management University, David LoSingapore Management University
18:00
90m
Poster
Static Analysis in Real-World Operational ScenariosDoctoral Symposium posterDemonstration
Posters
Philipp Dominik SchubertHeinz Nixdorf Institut, Paderborn University
File Attached
18:00
90m
Poster
IIFA: Modular Inter-app Intent Information Flow Analysis of Android Applications
Posters
Abhishek TiwariUniversity of Potsdam, Sascha GroßUniversity of Potsdam, Christian HammerUniversity of Potsdam
File Attached
18:00
90m
Poster
Towards Language-Parametric Semantic Editor ServicesECOOP posterDemonstration
Posters
Daniel A. A. PelsmaekerDelft University of Technology, Netherlands, Hendrik van AntwerpenTU Delft, Eelco VisserDelft University of Technology
18:00
90m
Poster
Type-Safe Data Plane Programming with SafeP4ECOOP poster
Posters
Matthias Eichholz, Eric CampbellCornell University, Nate FosterCornell University, Guido SalvaneschiTU Darmstadt, Mira MeziniTU Darmstadt, Germany
18:00
90m
Poster
Create your own Interpreter with a JITAORTA poster
Posters
Igor BragaIBM Canada
File Attached
18:00
90m
Poster
Lifting the Burden of Static Analysis Tool Configuration with Rule Graphs
Posters
Lisa Nguyen Quang DoPaderborn University, Eric BoddenHeinz Nixdorf Institut, Paderborn University and Fraunhofer IEM
File Attached
18:00
90m
Poster
NumLin: Linear Types for Linear AlgebraECOOP posterDemonstration
Posters
Dhruv MakwanaUnaffiliated, Neel KrishnaswamiComputer Laboratory, University of Cambridge
File Attached
18:00
90m
Poster
Towards Resilience Testing of Actor Programs through Test PerturbationsScala poster
Posters
Jonas De BleserSofware Languages Lab, Vrije Universiteit Brussel, Coen De RooverVrije Universiteit Brussel
18:00
90m
Poster
JIT as a Service: Compilation Paradigm for the CloudAORTA poster
Posters
Xiaoli LiangIBM Canada, Daryl MaierIBM Canada
18:00
90m
Poster
Transferring Obligations Through SynchronizationsECOOP posterDemonstration
Posters
Jafar Haminimec-DistriNet, Depatrmant of Computer Science, KU Leuven, Belgium, Bart JacobsRadboud University Nijmegen
18:00
90m
Poster
Automated Large-scale Multi-language Dynamic Program Analysis in the WildECOOP poster
Posters
Alex VillazónUniversidad Privada Boliviana, Bolivia, Haiyang SunUniversità della Svizzera italiana, Andrea RosàUniversity of Lugano, Switzerland, Eduardo RosalesUniversity of Lugano, Switzerland, Daniele BonettaOracle Labs, Isabella DefilippisUniversidad Privada Boliviana (UPB), Sergio OportoUniversidad Privada Boliviana (UPB), Walter BinderUniversity of Lugano, Switzerland
18:00
90m
Poster
Garbage-free Abstract Interpretation through Abstract Reference CountingECOOP poster
Posters
Noah Van EsSofware Languages Lab, Vrije Universiteit Brussel, Quentin StiévenartVrije Universiteit Brussel, Belgium, Coen De RooverVrije Universiteit Brussel
File Attached
18:00
90m
Poster
Finally, a Polymorphic Linear Algebra LanguageECOOP poster
Posters
Amir ShaikhhaUniversity of Oxford, Lionel ParreauxEPFL
18:00
90m
Poster
Multiverse Debugging: Non-deterministic Debugging for Non-deterministic ProgramsECOOP posterDemonstration
Posters
Carmen Torres LopezVrije Universiteit Brussel, Robbert Gurdeep SinghUniversiteit Gent, Belgium, Stefan MarrUniversity of Kent, Elisa Gonzalez BoixVrije Universiteit Brussel, Belgium, Christophe ScholliersUniversiteit Gent, Belgium
18:00
90m
Poster
Lifestate: Event-Driven Protocols and Callback Control FlowECOOP poster
Posters
Shawn MeierUniversity of Colorado, Boulder, Sergio MoverEcole Polytechnique, Bor-Yuh Evan ChangUniversity of Colorado Boulder
18:00
90m
Poster
Distributed System Development with ScalaLociECOOP poster
Posters
Pascal WeisenburgerTechnische Universität Darmstadt, Guido SalvaneschiTU Darmstadt
18:00
90m
Poster
Lightweight Software Profiling of Compiled CodeAORTA poster
Posters
Andrew CraikIBM Canada, Rahil ShahIBM Canada, Ben ThomasIBM Canada, Devin PapineauIBM Canada
18:00
90m
Poster
Android App Analysis Query LanguageBenchWork posterDemonstration
Posters
Felix PauckPaderborn University, Germany
Media Attached
18:00
90m
Poster
DynaSOAr: A Parallel Memory Allocator for OOP on GPUsECOOP poster
Posters
Matthias SpringerTokyo Institute of Technology, Hidehiko MasuharaTokyo Institute of Technology
18:00
90m
Poster
Godot: All the Benefits of Implicit and Explicit FuturesECOOP poster
Posters
Kiko Fernandez-ReyesUppsala University, Dave ClarkeUppsala Univ. Sweden and KU Leuvern, Ludovic HenrioCNRS, Einar Broch JohnsenUniversity of Oslo, Tobias WrigstadUppsala University
File Attached
18:00
90m
Poster
Deep Static Modeling of invokedynamicECOOP poster
Posters
George FourtounisUniversity of Athens, Yannis SmaragdakisUniversity of Athens