Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 
avatar of Andy Ayers

Andy Ayers

Andy Ayers has asked 0 questions and find answers to 9 problems.

Stats

189
EtPoint
54
Vote count
0
questions
9
answers

About

I currently work on the .Net JIT, in particular on the "early" stages of the jit.

I am responsible for JIT optimizations like devirtualization, type specialization, and inlining.

Inlining in particular has been something of a lifelong project for me. One day I'll figure it out.

I have made a number of attempts at leveraging machine learning to develop better compiler heuristics. Results so far have been a mixed bag.

Previously:

  • I was one of the lead developers on the experimental Microsoft Phoenix compiler and its integration into the Bartok AOT managed code compiler. This mashup of Bartok + Phoenix was most heavily used as the compiler for Midori. Phoenix pioneered a number of innovations in compiler design. In particular it was the first compiler I know of to offer interprocedural optimization and also be internally multithreaded.
  • I was co-founder at a startup where I developed technology to reconstruct compiler representations of code from the compiled binaries, so that they could be subsequently instrumented to provide high-performance auditing and fault reconstruction. The reconstruction was applied to binaries from numerous different platforms, including mainframe software.
  • I started my professional career working on the HP "High-Level Optimizer" where I worked on inlining, profile based optimizations, whole program optimizations, and high-level loop transformation.
  • My interest in compilers goes back to my days as a grad student at MIT, where I worked on (among other things) an experimental compiler and runtime system called "L" that lead me to write custom microcode for TI Explorer Lisp machines.