[commit: ghc] ghc-7.2: Remove the unused CmmAlign and CmmDataLabel from CmmStatic (ddd4f4d)

Ian Lynagh igloo at earth.li
Wed Jul 6 00:11:25 CEST 2011


Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : ghc-7.2

http://hackage.haskell.org/trac/ghc/changeset/ddd4f4dd8c7c7a1a6e0af2e0442302d2fe666a2c

>---------------------------------------------------------------

commit ddd4f4dd8c7c7a1a6e0af2e0442302d2fe666a2c
Author: Max Bolingbroke <batterseapower at hotmail.com>
Date:   Tue Jul 5 09:31:08 2011 +0100

    Remove the unused CmmAlign and CmmDataLabel from CmmStatic

>---------------------------------------------------------------

 compiler/cmm/CmmDecl.hs              |    5 -----
 compiler/cmm/CmmParse.y              |   16 +++++++---------
 compiler/cmm/PprC.hs                 |    2 --
 compiler/cmm/PprCmmDecl.hs           |    4 +---
 compiler/llvmGen/LlvmCodeGen/Data.hs |    7 -------
 compiler/nativeGen/PPC/Ppr.hs        |   17 +----------------
 compiler/nativeGen/SPARC/Ppr.hs      |    8 +-------
 compiler/nativeGen/X86/Ppr.hs        |    4 +---
 8 files changed, 11 insertions(+), 52 deletions(-)

diff --git a/compiler/cmm/CmmDecl.hs b/compiler/cmm/CmmDecl.hs
index a04491e..a663b84 100644
--- a/compiler/cmm/CmmDecl.hs
+++ b/compiler/cmm/CmmDecl.hs
@@ -16,7 +16,6 @@ module CmmDecl (
 
 #include "HsVersions.h"
 
-import BasicTypes (Alignment)
 import CmmExpr
 import CLabel
 import SMRep
@@ -133,10 +132,6 @@ data CmmStatic
         -- a literal value, size given by cmmLitRep of the literal.
   | CmmUninitialised Int
         -- uninitialised data, N bytes long
-  | CmmAlign Alignment
-        -- align to next N-byte boundary (N must be a power of 2).
-  | CmmDataLabel CLabel
-        -- label the current position in this section.
   | CmmString [Word8]
         -- string of 8-bit values only, not zero terminated.
 
diff --git a/compiler/cmm/CmmParse.y b/compiler/cmm/CmmParse.y
index eceff83..0840a30 100644
--- a/compiler/cmm/CmmParse.y
+++ b/compiler/cmm/CmmParse.y
@@ -188,25 +188,24 @@ cmmtop	:: { ExtCode }
 --	* we can derive closure and info table labels from a single NAME
 
 cmmdata :: { ExtCode }
-	: 'section' STRING '{' static_label statics '}' 
+	: 'section' STRING '{' data_label statics '}' 
 		{ do lbl <- $4;
 		     ss <- sequence $5;
 		     code (emitData (section $2) (Statics lbl $ concat ss)) }
 
-statics	:: { [ExtFCode [CmmStatic]] }
-	: {- empty -}			{ [] }
-	| static statics		{ $1 : $2 }
-
-static_label :: { ExtFCode CLabel }
+data_label :: { ExtFCode CLabel }
     : NAME ':'	
 		{% withThisPackage $ \pkg -> 
 		   return (mkCmmDataLabel pkg $1) }
     
+statics	:: { [ExtFCode [CmmStatic]] }
+	: {- empty -}			{ [] }
+	| static statics		{ $1 : $2 }
+    
 -- Strings aren't used much in the RTS HC code, so it doesn't seem
 -- worth allowing inline strings.  C-- doesn't allow them anyway.
 static 	:: { ExtFCode [CmmStatic] }
-	: static_label { liftM (\x -> [CmmDataLabel x]) $1 }
-	| type expr ';'	{ do e <- $2;
+	: type expr ';'	{ do e <- $2;
 			     return [CmmStaticLit (getLit e)] }
 	| type ';'			{ return [CmmUninitialised
 							(widthInBytes (typeWidth $1))] }
@@ -216,7 +215,6 @@ static 	:: { ExtFCode [CmmStatic] }
         | typenot8 '[' INT ']' ';'	{ return [CmmUninitialised 
 						(widthInBytes (typeWidth $1) * 
 							fromIntegral $3)] }
-	| 'align' INT ';'		{ return [CmmAlign (fromIntegral $2)] }
 	| 'CLOSURE' '(' NAME lits ')'
 		{ do lits <- sequence $4;
 		     return $ map CmmStaticLit $
diff --git a/compiler/cmm/PprC.hs b/compiler/cmm/PprC.hs
index b12d172..fe29bc6 100644
--- a/compiler/cmm/PprC.hs
+++ b/compiler/cmm/PprC.hs
@@ -498,8 +498,6 @@ pprStatic :: CmmStatic -> SDoc
 pprStatic s = case s of
 
     CmmStaticLit lit   -> nest 4 (pprLit lit)
-    CmmAlign i         -> nest 4 (ptext (sLit "/* align */") <+> int i)
-    CmmDataLabel clbl  -> pprCLabel clbl <> colon
     CmmUninitialised i -> nest 4 (mkC_ <> brackets (int i))
 
     -- these should be inlined, like the old .hc
diff --git a/compiler/cmm/PprCmmDecl.hs b/compiler/cmm/PprCmmDecl.hs
index ed143f3..2518204 100644
--- a/compiler/cmm/PprCmmDecl.hs
+++ b/compiler/cmm/PprCmmDecl.hs
@@ -175,14 +175,12 @@ instance Outputable ForeignHint where
 --      following C--
 --
 pprStatics :: CmmStatics -> SDoc
-pprStatics (Statics lbl ds) = vcat (map ppr (CmmDataLabel lbl:ds))
+pprStatics (Statics lbl ds) = vcat ((pprCLabel lbl <> colon) : map ppr ds)
 
 pprStatic :: CmmStatic -> SDoc
 pprStatic s = case s of
     CmmStaticLit lit   -> nest 4 $ ptext (sLit "const") <+> pprLit lit <> semi
     CmmUninitialised i -> nest 4 $ text "I8" <> brackets (int i)
-    CmmAlign i         -> nest 4 $ text "align" <+> int i
-    CmmDataLabel clbl  -> pprCLabel clbl <> colon
     CmmString s'       -> nest 4 $ text "I8[]" <+> text (show s')
 
 -- --------------------------------------------------------------------------
diff --git a/compiler/llvmGen/LlvmCodeGen/Data.hs b/compiler/llvmGen/LlvmCodeGen/Data.hs
index 7cca522..ef86abf 100644
--- a/compiler/llvmGen/LlvmCodeGen/Data.hs
+++ b/compiler/llvmGen/LlvmCodeGen/Data.hs
@@ -148,7 +148,6 @@ resData _ _ = panic "resData: Non CLabel expr as left type!"
 --
 
 -- | Handle static data
--- Don't handle 'CmmAlign' or a 'CmmDataLabel'.
 genData :: CmmStatic -> UnresStatic
 
 genData (CmmString str) =
@@ -162,12 +161,6 @@ genData (CmmUninitialised bytes)
 genData (CmmStaticLit lit)
     = genStaticLit lit
 
-genData (CmmAlign _)
-    = panic "genData: Can't handle CmmAlign!"
-
-genData (CmmDataLabel _)
-    = panic "genData: Can't handle data labels not at top of data!"
-
 
 -- | Generate Llvm code for a static literal.
 --
diff --git a/compiler/nativeGen/PPC/Ppr.hs b/compiler/nativeGen/PPC/Ppr.hs
index 6750985..7d85b4c 100644
--- a/compiler/nativeGen/PPC/Ppr.hs
+++ b/compiler/nativeGen/PPC/Ppr.hs
@@ -95,11 +95,9 @@ pprBasicBlock (BasicBlock blockid instrs) =
 
 
 pprDatas :: CmmStatics -> Doc
-pprDatas (Statics lbl dats) = vcat (map pprData (CmmDataLabel lbl:dats))
+pprDatas (Statics lbl dats) = vcat (pprLabel lbl : map pprData dats)
 
 pprData :: CmmStatic -> Doc
-pprData (CmmAlign bytes)         = pprAlign bytes
-pprData (CmmDataLabel lbl)       = pprLabel lbl
 pprData (CmmString str)          = pprASCII str
 
 #if darwin_TARGET_OS
@@ -137,19 +135,6 @@ pprASCII str
        do1 :: Word8 -> Doc
        do1 w = ptext (sLit "\t.byte\t") <> int (fromIntegral w)
 
-pprAlign :: Int -> Doc
-pprAlign bytes =
-	ptext (sLit ".align ") <> int pow2
-  where
-	pow2 = log2 bytes
-	
-	log2 :: Int -> Int  -- cache the common ones
-	log2 1 = 0 
-	log2 2 = 1
-	log2 4 = 2
-	log2 8 = 3
-	log2 n = 1 + log2 (n `quot` 2)
-
 
 -- -----------------------------------------------------------------------------
 -- pprInstr: print an 'Instr'
diff --git a/compiler/nativeGen/SPARC/Ppr.hs b/compiler/nativeGen/SPARC/Ppr.hs
index 8563aab..7f3583f 100644
--- a/compiler/nativeGen/SPARC/Ppr.hs
+++ b/compiler/nativeGen/SPARC/Ppr.hs
@@ -92,11 +92,9 @@ pprBasicBlock (BasicBlock blockid instrs) =
 
 
 pprDatas :: CmmStatics -> Doc
-pprDatas (Statics lbl dats) = vcat (map pprData (CmmDataLabel lbl:dats))
+pprDatas (Statics lbl dats) = vcat (pprLabel lbl : map pprData dats)
 
 pprData :: CmmStatic -> Doc
-pprData (CmmAlign bytes)         = pprAlign bytes
-pprData (CmmDataLabel lbl)       = pprLabel lbl
 pprData (CmmString str)          = pprASCII str
 pprData (CmmUninitialised bytes) = ptext (sLit ".skip ") <> int bytes
 pprData (CmmStaticLit lit)       = pprDataItem lit
@@ -128,10 +126,6 @@ pprASCII str
        do1 :: Word8 -> Doc
        do1 w = ptext (sLit "\t.byte\t") <> int (fromIntegral w)
 
-pprAlign :: Int -> Doc
-pprAlign bytes =
-	ptext (sLit ".align ") <> int bytes
-
 
 -- -----------------------------------------------------------------------------
 -- pprInstr: print an 'Instr'
diff --git a/compiler/nativeGen/X86/Ppr.hs b/compiler/nativeGen/X86/Ppr.hs
index 676e4c8..10af5ef 100644
--- a/compiler/nativeGen/X86/Ppr.hs
+++ b/compiler/nativeGen/X86/Ppr.hs
@@ -104,11 +104,9 @@ pprBasicBlock (BasicBlock blockid instrs) =
 
 
 pprDatas :: (Alignment, CmmStatics) -> Doc
-pprDatas (align, (Statics lbl dats)) = vcat (map pprData (CmmAlign align:CmmDataLabel lbl:dats)) -- TODO: could remove if align == 1
+pprDatas (align, (Statics lbl dats)) = vcat (pprAlign align : pprLabel lbl : map pprData dats) -- TODO: could remove if align == 1
 
 pprData :: CmmStatic -> Doc
-pprData (CmmAlign bytes)         = pprAlign bytes
-pprData (CmmDataLabel lbl)       = pprLabel lbl
 pprData (CmmString str)          = pprASCII str
 
 #if  darwin_TARGET_OS





More information about the Cvs-ghc mailing list