ELS Editions

4th European Lisp Symposium

Special Focus on Parallelism & Efficiency

March 31st - April 1st, 2011
TUHH, Hamburg University of Technology, Hamburg, Germany

Craig Zilles


Craig Zilles is an Associate Professor in the Computer Science department at the University of Illinois at Urbana-Champaign. His current research focuses on the interaction between compilers and computer architecture, and is currently on leave from the university collaborating with Intel on hardware/software co-designed architectures. He received his Ph.D. in 2002 from Wisconsin-Madison for his work with Guri Sohi on Speculative Slices and Master/Slave Speculative Parallelization. Prior to his work on computer architecture and compilers, he developed the first algorithm that allowed rendering arbitrary three-dimensional polygonal shapes for haptic interfaces (force-feedback human-computer interfaces). He holds 7 patents, and his recent achievements include receiving a best paper award at the 15th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2010), the prestigious NSF CAREER award, and the College of Engineering's Rose and Everitt Awards for Teaching Excellence.

Talk — Compiling for the common case

Microprocessor vendors are actively exploring mechanisms that offer the potential to reduce the effort to produce parallel code. One such mechanism, is the ability to atomically execute code which is useful for accelerating critical sections, lock-free data structures, and for implementing transactional memory. With 3 prior implementations (Transmeta's Crusoe, Azul's Vega, and Sun's Rock) this mechanism has a lot of potential to be ubiquitous in the next decade. In this talk, I'll discuss how this mechanism can be re-purposed to provide very efficient user-mode checkpoint/rollback, allowing a compiler to generate "speculative" versions of code that support only the expected case. I'll detail our experiences exploring compiling in such an environment in the context of an x86 binary translator, a Java virtual machine, and the Python dynamic language.

Back to the symposium programme.