Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : unboxed-tuple-arguments
http://hackage.haskell.org/trac/ghc/changeset/7a64ef7dca2e3a221c4ade84147dceac5df02c44 >--------------------------------------------------------------- commit 7a64ef7dca2e3a221c4ade84147dceac5df02c44 Author: Max Bolingbroke <[email protected]> Date: Sun Mar 4 16:11:47 2012 +0000 Support code generation for unboxed-tuple function arguments This has the following knock-on effects: * We can remove special case code for void arguments, and treat them as nullary unboxed tuples * The subkind hierarchy is vastly simplified (no UbxTupleKind or ArgKind) * Various relaxed type checks in typechecker, 'foreign import prim' etc * All case binders may be live * No VoidRep compiler/basicTypes/BasicTypes.lhs | 5 + compiler/basicTypes/DataCon.lhs | 2 +- compiler/basicTypes/Id.lhs | 2 +- compiler/basicTypes/MkId.lhs | 2 +- compiler/cmm/CLabel.hs | 8 +- compiler/cmm/CmmUtils.hs | 29 ++-- compiler/codeGen/CgBindery.lhs | 391 ++++++++++++++++++++---------------- compiler/codeGen/CgCallConv.hs | 66 +++---- compiler/codeGen/CgCase.lhs | 172 ++++++++-------- compiler/codeGen/CgClosure.lhs | 73 ++++--- compiler/codeGen/CgCon.lhs | 34 ++-- compiler/codeGen/CgExpr.lhs | 54 +++--- compiler/codeGen/CgForeignCall.hs | 28 ++-- compiler/codeGen/CgHeapery.lhs | 24 +-- compiler/codeGen/CgInfoTbls.hs | 26 ++- compiler/codeGen/CgLetNoEscape.lhs | 3 +- compiler/codeGen/CgParallel.hs | 6 +- compiler/codeGen/CgPrimOp.hs | 6 +- compiler/codeGen/CgStackery.lhs | 4 +- compiler/codeGen/CgTailCall.lhs | 70 ++++---- compiler/codeGen/CgTicky.hs | 12 +- compiler/codeGen/CgUtils.hs | 42 ++++- compiler/codeGen/ClosureInfo.lhs | 113 ++++++----- compiler/codeGen/StgCmm.hs | 8 +- compiler/codeGen/StgCmmBind.hs | 119 ++++++------ compiler/codeGen/StgCmmClosure.hs | 78 ++++---- compiler/codeGen/StgCmmCon.hs | 43 ++-- compiler/codeGen/StgCmmEnv.hs | 176 +++++++++------- compiler/codeGen/StgCmmExpr.hs | 118 ++++++----- compiler/codeGen/StgCmmForeign.hs | 17 +- compiler/codeGen/StgCmmHeap.hs | 32 +--- compiler/codeGen/StgCmmLayout.hs | 119 +++++------ compiler/codeGen/StgCmmMonad.hs | 32 +++- compiler/codeGen/StgCmmPrim.hs | 28 +-- compiler/codeGen/StgCmmTicky.hs | 16 +- compiler/codeGen/StgCmmUtils.hs | 29 ++-- compiler/coreSyn/CoreLint.lhs | 20 +-- compiler/deSugar/DsForeign.lhs | 33 ++-- compiler/ghci/ByteCodeAsm.lhs | 32 ++-- compiler/ghci/ByteCodeGen.lhs | 106 ++++++----- compiler/ghci/ByteCodeInstr.lhs | 4 +- compiler/ghci/ByteCodeItbls.lhs | 2 +- compiler/ghci/LibFFI.hsc | 24 +- compiler/ghci/RtClosureInspect.hs | 146 ++++++++++---- compiler/main/InteractiveEval.hs | 3 +- compiler/parser/ParserCore.y | 2 +- compiler/prelude/PrelNames.lhs | 5 +- compiler/prelude/PrimOp.lhs | 19 +- compiler/prelude/TysPrim.lhs | 94 ++++------ compiler/prelude/TysWiredIn.lhs | 4 +- compiler/simplCore/CSE.lhs | 17 +-- compiler/stgSyn/StgSyn.lhs | 2 +- compiler/typecheck/TcBinds.lhs | 4 +- compiler/typecheck/TcDeriv.lhs | 2 +- compiler/typecheck/TcExpr.lhs | 4 +- compiler/typecheck/TcHsType.lhs | 8 +- compiler/typecheck/TcInteract.lhs | 4 + compiler/typecheck/TcMType.lhs | 59 ++---- compiler/typecheck/TcPat.lhs | 31 +--- compiler/typecheck/TcSimplify.lhs | 4 +- compiler/typecheck/TcType.lhs | 30 +-- compiler/typecheck/TcUnify.lhs | 5 +- compiler/types/Kind.lhs | 49 +---- compiler/types/TyCon.lhs | 24 +-- compiler/types/Type.lhs | 26 ++- compiler/types/TypeRep.lhs | 6 +- compiler/utils/Util.lhs | 12 +- 67 files changed, 1404 insertions(+), 1364 deletions(-) Diff suppressed because of size. To see it, use: git show 7a64ef7dca2e3a221c4ade84147dceac5df02c44 _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
