Set up the LLVM context and optimise the module
authorLuke Lau <luke_lau@icloud.com>
Sun, 19 May 2019 14:58:31 +0000 (15:58 +0100)
committerLuke Lau <luke_lau@icloud.com>
Mon, 3 Jun 2019 23:15:37 +0000 (00:15 +0100)
commit465f82229f9f90b5bad3c10ecfd821c5212597fe
treece1b47f7194df6d4cfd0cf963613fd19c05df058
parentde8c7223c79f10c69f9916db1f15b34d20938e2c
Set up the LLVM context and optimise the module

Now that we have some LLVM IR generated, we can run PassManager on our
module to get a bunch of neat optimisations on it. Try it out with 3 + 2
to see some constant folding.
Note that the original tutorial uses FunctionPassManager which optimises
on a function per function basis: llvm-hs doesn't expose this yet (and
this is all using the legacy pass manager anyway), so for now we just
optimise the entire module at the end.
Main.hs