[commit: ghc] unboxed-tuple-arguments: Support code generation for unboxed-tuple function arguments (7a64ef7)
Max Bolingbroke
batterseapower at hotmail.com
Wed Mar 7 00:05:34 CET 2012
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 <batterseapower at hotmail.com>
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
More information about the Cvs-ghc
mailing list