summaryrefslogtreecommitdiff
path: root/compiler/GHC/StgToCmm
diff options
context:
space:
mode:
authorAndreas Klebinger <klebinger.andreas@gmx.at>2021-12-23 15:46:18 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-02-10 04:35:35 -0500
commit48f257151f30f6b4d2f8b1a6ea4185ccd00ebd95 (patch)
treec440e41d67f5c4d2f62deaed0b9dbb6991e06338 /compiler/GHC/StgToCmm
parentac2d18a7353cd3ac1ba4b5993f2776fe0c5eedc9 (diff)
downloadhaskell-48f257151f30f6b4d2f8b1a6ea4185ccd00ebd95.tar.gz
Add late cost centre support
This allows cost centres to be inserted after the core optimization pipeline has run.
Diffstat (limited to 'compiler/GHC/StgToCmm')
-rw-r--r--compiler/GHC/StgToCmm/Prim.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/GHC/StgToCmm/Prim.hs b/compiler/GHC/StgToCmm/Prim.hs
index adb870801c..4e1e24e93d 100644
--- a/compiler/GHC/StgToCmm/Prim.hs
+++ b/compiler/GHC/StgToCmm/Prim.hs
@@ -35,7 +35,7 @@ import GHC.Cmm.Graph
import GHC.Stg.Syntax
import GHC.Cmm
import GHC.Unit ( rtsUnit )
-import GHC.Core.Type ( Type, tyConAppTyCon )
+import GHC.Core.Type ( Type, tyConAppTyCon_maybe )
import GHC.Core.TyCon
import GHC.Cmm.CLabel
import GHC.Cmm.Info ( closureInfoPtr )
@@ -49,6 +49,7 @@ import GHC.Utils.Panic.Plain
import Data.Maybe
import Control.Monad (liftM, when, unless)
+import GHC.Utils.Outputable
------------------------------------------------------------------------
-- Primitive operations and foreign calls
@@ -1542,7 +1543,7 @@ emitPrimOp cfg primop =
-- you used tagToEnum# in a non-monomorphic setting, e.g.,
-- intToTg :: Enum a => Int -> a ; intToTg (I# x#) = tagToEnum# x#
-- That won't work.
- let tycon = tyConAppTyCon res_ty
+ let tycon = fromMaybe (pprPanic "tagToEnum#: Applied to non-concrete type" (ppr res_ty)) (tyConAppTyCon_maybe res_ty)
massert (isEnumerationTyCon tycon)
platform <- getPlatform
pure [tagToClosure platform tycon amode]