Marc Berndl

Learn More
This paper reports on a new approach to solving a subset-based points-to analysis for Java using Binary Decision Diagrams (BDDs). In the model checking community, BDDs have been shown very effective for representing large sets and solving very large verification problems. Our work shows that BDDs can also be very effective for developing a points-to(More)
Direct-threaded interpreters use indirect branches to dispatch bytecodes, but deeply-pipelined architectures rely on branch prediction for performance. Due to the poor correlation between the virtual program's control flow and the hardware program counter, which we call the context problem, direct threading's indirect branches are poorly predicted by the(More)
Interpreters are widely used to implement portable language runtime environments. Programs written in these languages may benefit from performance beyond that obtainable by optimizing interpretation alone. A modern high-performance mixed-mode virtual machine (VM) includes a method-based Just In Time (JIT) compiler. A method-based JIT, however , requires the(More)
In designing compiler analyses and optimisations, the choice of intermediate representation (IR) is a crucial one. Static Single Assignment (SSA) form in particular is an IR with interesting properties, enabling certain analyses and optimisations to be more easily implemented while also being more powerful. Our goal has been to research and implement(More)
Molecular "fingerprints" encoding structural information are the workhorse of cheminformatics and machine learning in drug discovery applications. However, fingerprint representations necessarily emphasize particular aspects of the molecular structure while ignoring others, rather than allowing the model to make data-driven decisions. We describe molecular(More)
I analyze the equilibria of a game based on the ad auction used by Google and Yahoo. This auction is closely related to the assignment game studied by Shapley–Shubik, Demange–Gale–Sotomayer and Roth– Sotomayer. However, due to the special structure of preferences, the equilibria of the ad auction can be calculated explicitly and some known results can be(More)
Dynamic program optimization is becoming increasingly important for achieving good runtime performance. One of the key issues in such systems is how it selects which code to optimize. One approach is to dynamically detect traces, long sequences of instructions which are likely to execute to completion. Such traces can be stored in a trace cache and(More)
  • 1