summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2021-01-22 18:30:29 +0000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-02-22 18:27:05 -0500
commit8bc9df52ae8b1fd213290e1da1ed6e5af902a718 (patch)
treec02485a298245d72504f2fba999fadf994232122
parenta1c85db1ae5b85b7bd16f75642662c698b90b7c1 (diff)
downloadhaskell-8bc9df52ae8b1fd213290e1da1ed6e5af902a718.tar.gz
Force gcp in assignArgumentsPos
I observed this accumulating in the T3294 test only to be eventually forced (by a -hi profile). As it is only word big, forcing it saves quite a bit of allocation.
-rw-r--r--compiler/GHC/Cmm/CallConv.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/GHC/Cmm/CallConv.hs b/compiler/GHC/Cmm/CallConv.hs
index 0f65ef2157..f4b46a03f2 100644
--- a/compiler/GHC/Cmm/CallConv.hs
+++ b/compiler/GHC/Cmm/CallConv.hs
@@ -95,8 +95,8 @@ assignArgumentsPos profile off conv arg_ty reps = (stk_off, assignments)
k (asst, regs') = assign_regs ((r, asst) : assts) rs regs'
ty = arg_ty r
w = typeWidth ty
- gcp | isGcPtrType ty = VGcPtr
- | otherwise = VNonGcPtr
+ !gcp | isGcPtrType ty = VGcPtr
+ | otherwise = VNonGcPtr
passFloatInXmm = passFloatArgsInXmm platform
passFloatArgsInXmm :: Platform -> Bool