Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : unboxed-tuple-arguments2
http://hackage.haskell.org/trac/ghc/changeset/826b5707ebe7ca7381d488fdbd143a39b467bfdf >--------------------------------------------------------------- commit 826b5707ebe7ca7381d488fdbd143a39b467bfdf Author: Max Bolingbroke <[email protected]> Date: Sun Mar 18 00:00:38 2012 +0000 Support code generation for unboxed-tuple function arguments This is done by a 'unarisation' pre-pass at the STG level which translates away all (live) binders binding something of unboxed tuple type. This has the following knock-on effects: * 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 at the Core level compiler/basicTypes/BasicTypes.lhs | 13 +++- compiler/basicTypes/DataCon.lhs | 9 ++- compiler/basicTypes/Id.lhs | 10 +- compiler/cmm/CmmUtils.hs | 6 +- compiler/codeGen/CgCon.lhs | 8 +- compiler/codeGen/CgExpr.lhs | 2 +- compiler/codeGen/CgForeignCall.hs | 3 +- compiler/codeGen/ClosureInfo.lhs | 35 +++++---- compiler/codeGen/StgCmm.hs | 4 +- compiler/codeGen/StgCmmClosure.hs | 31 +++++--- compiler/codeGen/StgCmmCon.hs | 2 +- compiler/codeGen/StgCmmExpr.hs | 2 +- compiler/codeGen/StgCmmForeign.hs | 3 +- compiler/codeGen/StgCmmLayout.hs | 8 +- compiler/codeGen/StgCmmTicky.hs | 6 +- compiler/codeGen/StgCmmUtils.hs | 2 +- compiler/coreSyn/CoreLint.lhs | 18 +---- compiler/deSugar/DsExpr.lhs | 31 +------- compiler/deSugar/DsForeign.lhs | 13 ++- compiler/ghc.cabal.in | 1 + compiler/ghci/ByteCodeGen.lhs | 32 +++++--- compiler/ghci/ByteCodeItbls.lhs | 3 +- compiler/ghci/RtClosureInspect.hs | 119 ++++++++++++++++++---------- compiler/main/InteractiveEval.hs | 7 +- compiler/parser/ParserCore.y | 2 +- compiler/prelude/PrelNames.lhs | 5 +- compiler/prelude/TysPrim.lhs | 31 +------ compiler/prelude/TysWiredIn.lhs | 4 +- compiler/simplCore/CSE.lhs | 30 +------- compiler/simplStg/SimplStg.lhs | 6 +- compiler/simplStg/UnariseStg.lhs | 156 ++++++++++++++++++++++++++++++++++++ compiler/stgSyn/CoreToStg.lhs | 11 ++- compiler/stgSyn/StgLint.lhs | 34 +++++---- compiler/stgSyn/StgSyn.lhs | 4 +- compiler/typecheck/TcBinds.lhs | 4 +- compiler/typecheck/TcDeriv.lhs | 2 +- compiler/typecheck/TcExpr.lhs | 4 +- compiler/typecheck/TcHsType.lhs | 16 ++-- compiler/typecheck/TcMType.lhs | 54 ++++--------- compiler/typecheck/TcPat.lhs | 32 +------ compiler/typecheck/TcType.lhs | 4 +- compiler/typecheck/TcUnify.lhs | 2 +- compiler/types/Kind.lhs | 45 ++-------- compiler/types/Type.lhs | 79 ++++++++---------- compiler/types/TypeRep.lhs | 4 +- compiler/utils/Util.lhs | 12 +++- 46 files changed, 495 insertions(+), 414 deletions(-) Diff suppressed because of size. To see it, use: git show 826b5707ebe7ca7381d488fdbd143a39b467bfdf _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
