summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2013-10-04 12:10:30 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2013-10-04 12:11:57 +0100
commit429397f2cca3b6e7a74b6a24132eae8008accc14 (patch)
treed0dca72d18a6b9fa956a531636d72aac3144ac0b /compiler/codeGen
parent30a046fbe5c7d890bc4518b2cd1b925ac060aed8 (diff)
downloadhaskell-429397f2cca3b6e7a74b6a24132eae8008accc14.tar.gz
Comments only
Diffstat (limited to 'compiler/codeGen')
-rw-r--r--compiler/codeGen/StgCmmArgRep.hs8
1 files changed, 7 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)