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>
Thu, 7 Nov 2019 17:10:39 +0000 (17:10 +0000)
commit71d6ead1c5a14f206f5d7c8d4b9d1cbfed4a90db
tree801ff39b2b727944f56a1355b161fec8973f6039
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
Utils.hs