diff options
author | Andreas Klebinger <klebinger.andreas@gmx.at> | 2021-12-23 15:46:18 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-02-10 04:35:35 -0500 |
commit | 48f257151f30f6b4d2f8b1a6ea4185ccd00ebd95 (patch) | |
tree | c440e41d67f5c4d2f62deaed0b9dbb6991e06338 /compiler/GHC/StgToCmm | |
parent | ac2d18a7353cd3ac1ba4b5993f2776fe0c5eedc9 (diff) | |
download | haskell-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.hs | 5 |
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] |