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>
Sun, 19 May 2019 14:58:31 +0000 (15:58 +0100)
commitbdb5ef3da162c9a093c61d48d5deec8262943047
treece1b47f7194df6d4cfd0cf963613fd19c05df058
parent795fc872e603cc359ec6e307969ac925c3b5dc4d
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