Vpx7mqxs5dxx37lw1kgt
SkillsCast

A Look Inside GHC's Optimiser

12th October 2017 in London at CodeNode

There are 36 other SkillsCasts available from Haskell eXchange 2017

Please log in to watch this conference skillscast.

Https s3.amazonaws.com prod.tracker2 resource 41088130 skillsmatter conference skillscast o9nohu

The joy of functional programming is writing high-level declarative code. The belief of Haskell programmers is that GHC should compile this code to remove the overhead of abstraction. The reality is that sometimes it does and sometimes it doesn't!

In this talk, you will explore the basic operation of the main optimisations that GHC performs, what users should expect from the compiler and what options they have to control how the optimiser behaves. We will focus on core-to-core passes such as inlining, specialisation, SpecConstr, SAT and so on.

The aim of this talk is to make you think more carefully about how the compiler optimises their code. There will be lots of examples of real world code and toy examples which demonstrate how specific passes work. Ultimately by users better understanding the optimisation pipeline, I hope that library writers experience can feed back into making GHC better optimise modern Haskell code.

YOU MAY ALSO LIKE:

Thanks to our sponsors

A Look Inside GHC's Optimiser

Matthew Pickering

Matthew is a PhD student at the University of Bristol and one of the core GHC contributors. His research interests are in program generation and multi-stage programming.

SkillsCast

Please log in to watch this conference skillscast.

Https s3.amazonaws.com prod.tracker2 resource 41088130 skillsmatter conference skillscast o9nohu

The joy of functional programming is writing high-level declarative code. The belief of Haskell programmers is that GHC should compile this code to remove the overhead of abstraction. The reality is that sometimes it does and sometimes it doesn't!

In this talk, you will explore the basic operation of the main optimisations that GHC performs, what users should expect from the compiler and what options they have to control how the optimiser behaves. We will focus on core-to-core passes such as inlining, specialisation, SpecConstr, SAT and so on.

The aim of this talk is to make you think more carefully about how the compiler optimises their code. There will be lots of examples of real world code and toy examples which demonstrate how specific passes work. Ultimately by users better understanding the optimisation pipeline, I hope that library writers experience can feed back into making GHC better optimise modern Haskell code.

YOU MAY ALSO LIKE:

Thanks to our sponsors

About the Speaker

A Look Inside GHC's Optimiser

Matthew Pickering

Matthew is a PhD student at the University of Bristol and one of the core GHC contributors. His research interests are in program generation and multi-stage programming.

Photos