1. 16 Jul, 2013 2 commits
  2. 13 Jul, 2013 1 commit
  3. 11 Jul, 2013 1 commit
  4. 10 Jul, 2013 4 commits
  5. 09 Jul, 2013 3 commits
  6. 07 Jul, 2013 5 commits
  7. 06 Jul, 2013 1 commit
  8. 05 Jul, 2013 4 commits
  9. 03 Jul, 2013 4 commits
  10. 02 Jul, 2013 6 commits
  11. 28 Jun, 2013 7 commits
  12. 27 Jun, 2013 2 commits
    • Peter Wortmann's avatar
      LLVM refactor cleanups · fe44d053
      Peter Wortmann authored
      Slightly more documentation, removed unused label map (huh),
      removed MonadIO instance on LlvmM to improve encapsulation.
      fe44d053
    • Peter Wortmann's avatar
      Major Llvm refactoring · a948fe83
      Peter Wortmann authored
      This combined patch reworks the LLVM backend in a number of ways:
      
      1. Most prominently, we introduce a LlvmM monad carrying the contents of
         the old LlvmEnv around. This patch completely removes LlvmEnv and
         refactors towards standard library monad combinators wherever possible.
      
      2. Support for streaming - we can now generate chunks of Llvm for Cmm as
         it comes in. This might improve our speed.
      
      3. To allow streaming, we need a more flexible way to handle forward
         references. The solution (getGlobalPtr) unifies LlvmCodeGen.Data
         and getHsFunc as well.
      
      4. Skip alloca-allocation for registers that are actually never written.
         LLVM will automatically eliminate these, but output is smaller and
         friendlier to human eyes this way.
      
      5. We use LlvmM to collect references for llvm.used. This allows places
         other than cmmProcLlvmGens to generate entries.
      a948fe83