diff options
author | Sylvain Henry <sylvain@haskus.fr> | 2020-03-31 18:49:01 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-04-03 06:26:54 -0400 |
commit | cc2918a0407e1581e824ebd90a1fcbb0637d5744 (patch) | |
tree | 42cdc286b9b2557252f59db47373305c1cfc9c36 /compiler/GHC/CmmToLlvm/Data.hs | |
parent | a485c3c4049fff09e989bfd7d2ba47035c92a69b (diff) | |
download | haskell-cc2918a0407e1581e824ebd90a1fcbb0637d5744.tar.gz |
Refactor CmmStatics
In !2959 we noticed that there was some redundant code (in GHC.Cmm.Utils
and GHC.Cmm.StgToCmm.Utils) used to deal with `CmmStatics` datatype
(before SRT generation) and `RawCmmStatics` datatype (after SRT
generation).
This patch removes this redundant code by using a single GADT for
(Raw)CmmStatics.
Diffstat (limited to 'compiler/GHC/CmmToLlvm/Data.hs')
-rw-r--r-- | compiler/GHC/CmmToLlvm/Data.hs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/GHC/CmmToLlvm/Data.hs b/compiler/GHC/CmmToLlvm/Data.hs index ea5b83a703..a862895b3c 100644 --- a/compiler/GHC/CmmToLlvm/Data.hs +++ b/compiler/GHC/CmmToLlvm/Data.hs @@ -44,7 +44,7 @@ linkage lbl = if externallyVisibleCLabel lbl -- | Pass a CmmStatic section to an equivalent Llvm code. genLlvmData :: (Section, RawCmmStatics) -> LlvmM LlvmData -- See note [emit-time elimination of static indirections] in CLabel. -genLlvmData (_, RawCmmStatics alias [CmmStaticLit (CmmLabel lbl), CmmStaticLit ind, _, _]) +genLlvmData (_, CmmStaticsRaw alias [CmmStaticLit (CmmLabel lbl), CmmStaticLit ind, _, _]) | lbl == mkIndStaticInfoLabel , let labelInd (CmmLabelOff l _) = Just l labelInd (CmmLabel l) = Just l @@ -67,7 +67,7 @@ genLlvmData (_, RawCmmStatics alias [CmmStaticLit (CmmLabel lbl), CmmStaticLit i pure ([LMGlobal aliasDef $ Just orig], [tyAlias]) -genLlvmData (sec, RawCmmStatics lbl xs) = do +genLlvmData (sec, CmmStaticsRaw lbl xs) = do label <- strCLabel_llvm lbl static <- mapM genData xs lmsec <- llvmSection sec |