summaryrefslogtreecommitdiff
path: root/compiler/GHC/StgToCmm/Utils.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/StgToCmm/Utils.hs')
-rw-r--r--compiler/GHC/StgToCmm/Utils.hs63
1 files changed, 2 insertions, 61 deletions
diff --git a/compiler/GHC/StgToCmm/Utils.hs b/compiler/GHC/StgToCmm/Utils.hs
index 86d8a8d842..35af67cc54 100644
--- a/compiler/GHC/StgToCmm/Utils.hs
+++ b/compiler/GHC/StgToCmm/Utils.hs
@@ -1,5 +1,4 @@
{-# LANGUAGE CPP #-}
-{-# LANGUAGE LambdaCase #-}
-----------------------------------------------------------------------------
--
@@ -10,11 +9,10 @@
-----------------------------------------------------------------------------
module GHC.StgToCmm.Utils (
- cgLit, mkSimpleLit,
emitDataLits, emitRODataLits,
emitDataCon,
emitRtsCall, emitRtsCallWithResult, emitRtsCallGen,
- assignTemp, newTemp,
+ assignTemp,
newUnboxedTupleRegs,
@@ -38,7 +36,6 @@ module GHC.StgToCmm.Utils (
cmmUntag, cmmIsTagged,
addToMem, addToMemE, addToMemLblE, addToMemLbl,
- newStringCLit, newByteStringCLit,
-- * Update remembered set operations
whenUpdRemSetEnabled,
@@ -55,6 +52,7 @@ import GHC.Prelude
import GHC.Platform
import GHC.StgToCmm.Monad
import GHC.StgToCmm.Closure
+import GHC.StgToCmm.Lit (mkSimpleLit)
import GHC.Cmm
import GHC.Cmm.BlockId
import GHC.Cmm.Graph as CmmGraph
@@ -74,7 +72,6 @@ import GHC.Types.Literal
import GHC.Data.Graph.Directed
import GHC.Utils.Misc
import GHC.Types.Unique
-import GHC.Types.Unique.Supply (MonadUnique(..))
import GHC.Driver.Session
import GHC.Data.FastString
import GHC.Utils.Outputable
@@ -83,10 +80,7 @@ import GHC.Types.RepType
import GHC.Types.CostCentre
import GHC.Types.IPE
-import Data.ByteString (ByteString)
-import qualified Data.ByteString.Char8 as BS8
import qualified Data.Map as M
-import Data.Char
import Data.List (sortBy)
import Data.Ord
import GHC.Types.Unique.Map
@@ -98,42 +92,6 @@ import GHC.Types.Unique.FM
import GHC.Data.Maybe
import Control.Monad
--------------------------------------------------------------------------
---
--- Literals
---
--------------------------------------------------------------------------
-
-cgLit :: Literal -> FCode CmmLit
-cgLit (LitString s) = newByteStringCLit s
- -- not unpackFS; we want the UTF-8 byte stream.
-cgLit other_lit = do platform <- getPlatform
- return (mkSimpleLit platform other_lit)
-
-mkSimpleLit :: Platform -> Literal -> CmmLit
-mkSimpleLit platform = \case
- (LitChar c) -> CmmInt (fromIntegral (ord c))
- (wordWidth platform)
- LitNullAddr -> zeroCLit platform
- (LitNumber LitNumInt i) -> CmmInt i (wordWidth platform)
- (LitNumber LitNumInt8 i) -> CmmInt i W8
- (LitNumber LitNumInt16 i) -> CmmInt i W16
- (LitNumber LitNumInt32 i) -> CmmInt i W32
- (LitNumber LitNumInt64 i) -> CmmInt i W64
- (LitNumber LitNumWord i) -> CmmInt i (wordWidth platform)
- (LitNumber LitNumWord8 i) -> CmmInt i W8
- (LitNumber LitNumWord16 i) -> CmmInt i W16
- (LitNumber LitNumWord32 i) -> CmmInt i W32
- (LitNumber LitNumWord64 i) -> CmmInt i W64
- (LitFloat r) -> CmmFloat r W32
- (LitDouble r) -> CmmFloat r W64
- (LitLabel fs ms fod)
- -> let -- TODO: Literal labels might not actually be in the current package...
- labelSrc = ForeignLabelInThisPackage
- in CmmLabel (mkForeignLabel fs ms labelSrc fod)
- -- NB: LitRubbish should have been lowered in "CoreToStg"
- other -> pprPanic "mkSimpleLit" (ppr other)
-
--------------------------------------------------------------------------
--
-- Incrementing a memory location
@@ -302,18 +260,6 @@ emitDataCon :: CLabel -> CmmInfoTable -> CostCentreStack -> [CmmLit] -> FCode ()
emitDataCon lbl itbl ccs payload =
emitDecl (CmmData (Section Data lbl) (CmmStatics lbl itbl ccs payload))
-newStringCLit :: String -> FCode CmmLit
--- Make a global definition for the string,
--- and return its label
-newStringCLit str = newByteStringCLit (BS8.pack str)
-
-newByteStringCLit :: ByteString -> FCode CmmLit
-newByteStringCLit bytes
- = do { uniq <- newUnique
- ; let (lit, decl) = mkByteStringCLit (mkStringLitLabel uniq) bytes
- ; emitDecl decl
- ; return lit }
-
-------------------------------------------------------------------------
--
-- Assigning expressions to temporaries
@@ -335,10 +281,6 @@ assignTemp e = do { platform <- getPlatform
; emitAssign (CmmLocal reg) e
; return reg }
-newTemp :: MonadUnique m => CmmType -> m LocalReg
-newTemp rep = do { uniq <- getUniqueM
- ; return (LocalReg uniq rep) }
-
newUnboxedTupleRegs :: Type -> FCode ([LocalReg], [ForeignHint])
-- Choose suitable local regs to use for the components
-- of an unboxed tuple that we are about to return to
@@ -605,7 +547,6 @@ assignTemp' e
emitAssign reg e
return (CmmReg reg)
-
---------------------------------------------------------------------------
-- Pushing to the update remembered set
---------------------------------------------------------------------------