• Moritz Angermann's avatar
    Clean up opt and llc · 22733532
    Moritz Angermann authored
    The LLVM backend shells out to LLVMs `opt` and `llc` tools. This clean
    up introduces a shared data structure to carry the arguments we pass to
    each tool so that corresponding flags are next to each other. It drops
    the hard coded data layouts in favor of using `-mtriple` and have LLVM
    infer them. Furthermore we add `clang` as a proper tool, so we don't
    rely on assuming that `clang` is called `clang` on the `PATH` when using
    `clang` as the assembler.  Finally this diff also changes the type of
    `optLevel` from `Int` to `Word`, as we do not have negative optimization
    Reviewers: erikd, hvr, austin, rwbarton, bgamari, kavon
    Reviewed By: kavon
    Subscribers: michalt, Ericson2314, ryantrinkle, dfeuer, carter, simonpj,
    kavon, simonmar, thomie, erikd, snowleopard
    Differential Revision: https://phabricator.haskell.org/D3352
ghc.mk 58 KB