diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2013-10-04 12:10:30 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2013-10-04 12:11:57 +0100 |
commit | 429397f2cca3b6e7a74b6a24132eae8008accc14 (patch) | |
tree | d0dca72d18a6b9fa956a531636d72aac3144ac0b | |
parent | 30a046fbe5c7d890bc4518b2cd1b925ac060aed8 (diff) | |
download | haskell-429397f2cca3b6e7a74b6a24132eae8008accc14.tar.gz |
Comments only
-rw-r--r-- | compiler/codeGen/StgCmmArgRep.hs | 8 | ||||
-rw-r--r-- | compiler/ghci/ByteCodeGen.lhs | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/compiler/codeGen/StgCmmArgRep.hs b/compiler/codeGen/StgCmmArgRep.hs index 1e68105aac..9821b0a267 100644 --- a/compiler/codeGen/StgCmmArgRep.hs +++ b/compiler/codeGen/StgCmmArgRep.hs @@ -122,9 +122,15 @@ idArgRep = toArgRep . idPrimRep -- -- NSF 6 Mar 2013 --- These cases were found to cover about 99% of all slow calls: slowCallPattern :: [ArgRep] -> (FastString, RepArity) -- Returns the generic apply function and arity +-- +-- The first batch of cases match (some) specialised entries +-- The last group deals exhaustively with the cases for the first argument +-- (and the zero-argument case) +-- +-- In 99% of cases this function will match *all* the arguments in one batch + slowCallPattern (P: P: P: P: P: P: _) = (fsLit "stg_ap_pppppp", 6) slowCallPattern (P: P: P: P: P: _) = (fsLit "stg_ap_ppppp", 5) slowCallPattern (P: P: P: P: _) = (fsLit "stg_ap_pppp", 4) diff --git a/compiler/ghci/ByteCodeGen.lhs b/compiler/ghci/ByteCodeGen.lhs index 25f6b6693d..9a5a95270c 100644 --- a/compiler/ghci/ByteCodeGen.lhs +++ b/compiler/ghci/ByteCodeGen.lhs @@ -1166,6 +1166,7 @@ maybe_getCCallReturnRep fn_ty -- Compile code which expects an unboxed Int on the top of stack, -- (call it i), and pushes the i'th closure in the supplied list -- as a consequence. +-- The [Name] is a list of the constructors of this (enumeration) type implement_tagToId :: [Name] -> BcM BCInstrList implement_tagToId names = ASSERT( notNull names ) |