Merge in new code generator branch.
authorSimon Marlow <marlowsd@gmail.com>
Mon, 24 Jan 2011 12:16:50 +0000 (12:16 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Mon, 24 Jan 2011 12:16:50 +0000 (12:16 +0000)
commit889c084e943779e76d19f2ef5e970ff655f511eb
tree56bba8db5c08c72dc1a85ecb2987e6c16c0fd635
parentf1a90f54590e5a7a32a9c3ef2950740922b1f425
Merge in new code generator branch.
This changes the new code generator to make use of the Hoopl package
for dataflow analysis.  Hoopl is a new boot package, and is maintained
in a separate upstream git repository (as usual, GHC has its own
lagging darcs mirror in http://darcs.haskell.org/packages/hoopl).

During this merge I squashed recent history into one patch.  I tried
to rebase, but the history had some internal conflicts of its own
which made rebase extremely confusing, so I gave up. The history I
squashed was:

  - Update new codegen to work with latest Hoopl
  - Add some notes on new code gen to cmm-notes
  - Enable Hoopl lag package.
  - Add SPJ note to cmm-notes
  - Improve GC calls on new code generator.

Work in this branch was done by:
   - Milan Straka <fox@ucw.cz>
   - John Dias <dias@cs.tufts.edu>
   - David Terei <davidterei@gmail.com>

Edward Z. Yang <ezyang@mit.edu> merged in further changes from GHC HEAD
and fixed a few bugs.
141 files changed:
compiler/cmm/BlockId.hs
compiler/cmm/Cmm.hs
compiler/cmm/CmmBrokenBlock.hs [deleted file]
compiler/cmm/CmmBuildInfoTables.hs
compiler/cmm/CmmCPS.hs
compiler/cmm/CmmCPSGen.hs [deleted file]
compiler/cmm/CmmCPSZ.hs [deleted file]
compiler/cmm/CmmCallConv.hs
compiler/cmm/CmmCommonBlockElim.hs [moved from compiler/cmm/CmmCommonBlockElimZ.hs with 57% similarity]
compiler/cmm/CmmContFlowOpt.hs
compiler/cmm/CmmCvt.hs
compiler/cmm/CmmDecl.hs [new file with mode: 0644]
compiler/cmm/CmmExpr.hs
compiler/cmm/CmmInfo.hs
compiler/cmm/CmmLex.x
compiler/cmm/CmmLint.hs
compiler/cmm/CmmLive.hs
compiler/cmm/CmmLiveZ.hs [deleted file]
compiler/cmm/CmmMachOp.hs [new file with mode: 0644]
compiler/cmm/CmmNode.hs [new file with mode: 0644]
compiler/cmm/CmmOpt.hs
compiler/cmm/CmmParse.y
compiler/cmm/CmmProcPoint.hs
compiler/cmm/CmmProcPointZ.hs [deleted file]
compiler/cmm/CmmSpillReload.hs
compiler/cmm/CmmStackLayout.hs
compiler/cmm/CmmTx.hs [deleted file]
compiler/cmm/CmmType.hs [new file with mode: 0644]
compiler/cmm/CmmUtils.hs
compiler/cmm/CmmZipUtil.hs [deleted file]
compiler/cmm/DFMonad.hs [deleted file]
compiler/cmm/Dataflow.hs [deleted file]
compiler/cmm/MkGraph.hs [new file with mode: 0644]
compiler/cmm/MkZipCfg.hs [deleted file]
compiler/cmm/MkZipCfgCmm.hs [deleted file]
compiler/cmm/OldCmm.hs [new file with mode: 0644]
compiler/cmm/OldCmmUtils.hs [new file with mode: 0644]
compiler/cmm/OldPprCmm.hs [new file with mode: 0644]
compiler/cmm/OptimizationFuel.hs
compiler/cmm/PprC.hs
compiler/cmm/PprCmm.hs
compiler/cmm/PprCmmDecl.hs [new file with mode: 0644]
compiler/cmm/PprCmmExpr.hs [new file with mode: 0644]
compiler/cmm/PprCmmZ.hs [deleted file]
compiler/cmm/README [deleted file]
compiler/cmm/StackColor.hs [deleted file]
compiler/cmm/StackPlacements.hs [deleted file]
compiler/cmm/ZipCfg.hs [deleted file]
compiler/cmm/ZipCfgCmmRep.hs [deleted file]
compiler/cmm/ZipCfgExtras.hs [deleted file]
compiler/cmm/ZipDataflow.hs [deleted file]
compiler/cmm/cmm-notes
compiler/codeGen/CgBindery.lhs
compiler/codeGen/CgCallConv.hs
compiler/codeGen/CgCase.lhs
compiler/codeGen/CgClosure.lhs
compiler/codeGen/CgCon.lhs
compiler/codeGen/CgExpr.lhs
compiler/codeGen/CgExtCode.hs
compiler/codeGen/CgForeignCall.hs
compiler/codeGen/CgHeapery.lhs
compiler/codeGen/CgHpc.hs
compiler/codeGen/CgInfoTbls.hs
compiler/codeGen/CgLetNoEscape.lhs
compiler/codeGen/CgMonad.lhs
compiler/codeGen/CgParallel.hs
compiler/codeGen/CgPrimOp.hs
compiler/codeGen/CgProf.hs
compiler/codeGen/CgStackery.lhs
compiler/codeGen/CgTailCall.lhs
compiler/codeGen/CgTicky.hs
compiler/codeGen/CgUtils.hs
compiler/codeGen/CodeGen.lhs
compiler/codeGen/SMRep.lhs
compiler/codeGen/StgCmm.hs
compiler/codeGen/StgCmmBind.hs
compiler/codeGen/StgCmmClosure.hs
compiler/codeGen/StgCmmCon.hs
compiler/codeGen/StgCmmEnv.hs
compiler/codeGen/StgCmmExpr.hs
compiler/codeGen/StgCmmForeign.hs
compiler/codeGen/StgCmmGran.hs
compiler/codeGen/StgCmmHeap.hs
compiler/codeGen/StgCmmHpc.hs
compiler/codeGen/StgCmmLayout.hs
compiler/codeGen/StgCmmMonad.hs
compiler/codeGen/StgCmmPrim.hs
compiler/codeGen/StgCmmProf.hs
compiler/codeGen/StgCmmTicky.hs
compiler/codeGen/StgCmmUtils.hs
compiler/ghc.cabal.in
compiler/llvmGen/LlvmCodeGen.hs
compiler/llvmGen/LlvmCodeGen/Base.hs
compiler/llvmGen/LlvmCodeGen/CodeGen.hs
compiler/llvmGen/LlvmCodeGen/Data.hs
compiler/llvmGen/LlvmCodeGen/Ppr.hs
compiler/main/CodeOutput.lhs
compiler/main/HscMain.lhs
compiler/nativeGen/AsmCodeGen.lhs
compiler/nativeGen/Instruction.hs
compiler/nativeGen/NCGMonad.hs
compiler/nativeGen/PIC.hs
compiler/nativeGen/PPC/CodeGen.hs
compiler/nativeGen/PPC/Instr.hs
compiler/nativeGen/PPC/Ppr.hs
compiler/nativeGen/PPC/RegInfo.hs
compiler/nativeGen/PPC/Regs.hs
compiler/nativeGen/RegAlloc/Graph/Coalesce.hs
compiler/nativeGen/RegAlloc/Graph/Spill.hs
compiler/nativeGen/RegAlloc/Graph/SpillClean.hs
compiler/nativeGen/RegAlloc/Graph/SpillCost.hs
compiler/nativeGen/RegAlloc/Graph/Stats.hs
compiler/nativeGen/RegAlloc/Linear/JoinToTargets.hs
compiler/nativeGen/RegAlloc/Linear/Main.hs
compiler/nativeGen/RegAlloc/Linear/Stats.hs
compiler/nativeGen/RegAlloc/Liveness.hs
compiler/nativeGen/SPARC/CodeGen.hs
compiler/nativeGen/SPARC/CodeGen/Amode.hs
compiler/nativeGen/SPARC/CodeGen/Base.hs
compiler/nativeGen/SPARC/CodeGen/CCall.hs
compiler/nativeGen/SPARC/CodeGen/CondCode.hs
compiler/nativeGen/SPARC/CodeGen/Expand.hs
compiler/nativeGen/SPARC/CodeGen/Gen32.hs
compiler/nativeGen/SPARC/CodeGen/Gen32.hs-boot
compiler/nativeGen/SPARC/CodeGen/Gen64.hs
compiler/nativeGen/SPARC/CodeGen/Sanity.hs
compiler/nativeGen/SPARC/Imm.hs
compiler/nativeGen/SPARC/Instr.hs
compiler/nativeGen/SPARC/Ppr.hs
compiler/nativeGen/SPARC/Regs.hs
compiler/nativeGen/SPARC/ShortcutJump.hs
compiler/nativeGen/Size.hs
compiler/nativeGen/TargetReg.hs
compiler/nativeGen/X86/CodeGen.hs
compiler/nativeGen/X86/Instr.hs
compiler/nativeGen/X86/Ppr.hs
compiler/nativeGen/X86/Regs.hs
ghc.mk
mk/validate-settings.mk
packages
utils/ghc-cabal/Main.hs