Open Source Compilers – London 23/1/2014

The Open Source Specialist Group  (OSSG)  will be holding a meeting dedicated to Open Source compilers.

The even will take place at the BCS Central London Offices, First Floor, The Davidson Building, 5 Southampton Street, London WC2E 7HA betwen 5:30pm and 8 :30pm.

Please register to attend.

The current sessions are:

  • LLVM, Simon Cook, Embecosm
  • Verilator: An open source Verilog to C++ compiler, Jeremy Bennett
  • Compiler optimization for energy minimization, James Pallister, University of Bristol


LLVM has emerged over the last few years as the first credible challenger to GCC as the pre-eminent open source compiler. It has already become the compiler of choice for OpenCL implementations.

This talk will provide an insight into the engineering behind LLVM, including the claim that is possible to port LLVM to a new architecture in 24 hours.

The talk will also look at the wider questions surrounding LLVM. Is its more permissive licensing the real reason it is attractive to major corporations? At present LLVM is primarily a C/C++ compiler for ARM and OpenCL – can it become a truly general compiler tool chain, and if so will supporting a much wider range of languages and architectures undermine the relative simplicity of porting the compiler? And finally how does the performance of LLVM stack up against GCC?

Speaker bio: Simon Cook leads Embecosm’s work on LLVM and is the author of the standard guide to the LLVM assembler. Simon holds a double first class honors degree in Computer Science and Electronics from Bristol University.

Verilator: An open source Verilog to C++ compiler

The Verilator compiler takes Verilog descriptions of silicon chip designs and from them generates a high performance cycle accurate model of the silion chip. Such models can be used in verifying the silicon design and developing software before the chip even reaches fabrication. This gives huge financial benefits by reducing silicon fabrication failures and by enabling reduced time to market for system software. It is no surprise that it is a widely used tool in the industry.

Originally developed by Digitial Equipment Corporation, Verilator was open sourced in the late 1990’s. Since then it has been maintained and further developed by Wilson Snyder assisted by many others in the community.

This talk will give an overview of the architecture of Verilator and the techniques it uses to generate high performance models of huge silicon chip designs. Examples of Verilog’s use will be included.

Speaker bio: Dr Jeremy Bennett is Embecosm’s founder, an expert on silicon chip modeling and one of the contributors to Verilator, for which Embecosm provides commercial support services. A former academic, Jeremy holds a MA and PhD from Cambridge University and is a Chartered Engineer, Chartered Information Technology Professional and Fellow of the Royal Society of Arts. He is the author of the standard textbook, “Introduction to Compiling Techniques” (McGraw-Hill 1990, 1996, 2003).

Compiler optimization for energy minimization

We are used to compilers which optimize for execution speed, and (in the embedded sector) for code size. In 2012 James Pallister led the seminal research project which demonstrated conclusively that compiler optimization has a major impact on the energy consumed by the generated code. This finding has immense potential for battery life of consumer devices, for the efficiency of devices relying on energy scavenging and for remote sensing, where batteries must last for years at a time.

In this talk, James Pallister will explore how compiled programs consume energy and the opportunities for compiler optimization to reduce energy consumption. He will provide an introduction to MAGEEC, an 18-month project supported by the UK Technology Strategy Board, which uses machine learning to select compiler optimizations that will yield the most energy efficient compiled code.

Speaker bio: James Pallister is a research student at the University of Bristol Department of Computer Science, where he is researching low-power multi-core system design. He is a technical advisor to Embecosm on the impact of compilers on energy consumption in embedded systems. Mr Pallister is a graduate of the University of Bristol, where he achieved joint First Class Honours in Computer Science and Electronics. He returned to Bristol in October 2012, where he is studying for a PhD in low-power multi-core system design.