Revert "Place static closures in their own section."
authorEdward Z. Yang <ezyang@cs.stanford.edu>
Mon, 20 Oct 2014 23:03:50 +0000 (16:03 -0700)
committerEdward Z. Yang <ezyang@cs.stanford.edu>
Mon, 20 Oct 2014 23:28:42 +0000 (16:28 -0700)
This reverts commit b23ba2a7d612c6b466521399b33fe9aacf5c4f75.

Conflicts:
compiler/cmm/PprCmmDecl.hs
compiler/nativeGen/PPC/Ppr.hs
compiler/nativeGen/SPARC/Ppr.hs
compiler/nativeGen/X86/Ppr.hs

compiler/cmm/Cmm.hs
compiler/cmm/CmmParse.y
compiler/cmm/PprCmmDecl.hs
compiler/codeGen/StgCmmBind.hs
compiler/codeGen/StgCmmCon.hs
compiler/codeGen/StgCmmUtils.hs
compiler/llvmGen/LlvmCodeGen/Data.hs
compiler/nativeGen/PPC/Ppr.hs
compiler/nativeGen/SPARC/Ppr.hs
compiler/nativeGen/X86/Ppr.hs

index 98c5b59..9e9bae9 100644 (file)
@@ -170,7 +170,6 @@ data Section
   | RelocatableReadOnlyData
   | UninitialisedData
   | ReadOnlyData16      -- .rodata.cst16 on x86_64, 16-byte aligned
-  | StaticClosures
   | OtherSection String
 
 data CmmStatic
index db6cc49..8033330 100644 (file)
@@ -1105,7 +1105,7 @@ staticClosure :: PackageKey -> FastString -> FastString -> [CmmLit] -> CmmParse
 staticClosure pkg cl_label info payload
   = do dflags <- getDynFlags
        let lits = mkStaticClosure dflags (mkCmmInfoLabel pkg info) dontCareCCS payload [] [] []
-       code $ emitStaticClosure (mkCmmDataLabel pkg cl_label) lits
+       code $ emitDataLits (mkCmmDataLabel pkg cl_label) lits
 
 foreignCall
         :: String
index c9bbc8b..87cda6a 100644 (file)
@@ -162,7 +162,6 @@ pprSection s = case s of
     RelocatableReadOnlyData
                       -> section <+> doubleQuotes (text "relreadonly")
     UninitialisedData -> section <+> doubleQuotes (text "uninitialised")
-    StaticClosures    -> section <+> doubleQuotes (text "staticclosures")
     OtherSection s'   -> section <+> doubleQuotes (text s')
  where
     section = ptext (sLit "section")
index a253b11..444112f 100644 (file)
@@ -98,7 +98,7 @@ cgTopRhsClosure dflags rec id ccs _ upd_flag args body =
          let closure_rep   = mkStaticClosureFields dflags
                                     indStaticInfoTable ccs MayHaveCafRefs
                                     [unLit (idInfoToAmode cg_info)]
-         emitStaticClosure closure_label closure_rep
+         emitDataLits closure_label closure_rep
          return ()
 
   gen_code dflags lf_info closure_label
@@ -113,7 +113,7 @@ cgTopRhsClosure dflags rec id ccs _ upd_flag args body =
               closure_rep   = mkStaticClosureFields dflags info_tbl ccs caffy []
 
                  -- BUILD THE OBJECT, AND GENERATE INFO TABLE (IF NECESSARY)
-        ; emitStaticClosure closure_label closure_rep
+        ; emitDataLits closure_label closure_rep
         ; let fv_details :: [(NonVoid Id, VirtualHpOffset)]
               (_, _, fv_details) = mkVirtHeapOffsets dflags (isLFThunk lf_info)
                                                (addIdReps [])
index 93bfaf0..edd0648 100644 (file)
@@ -101,7 +101,7 @@ cgTopRhsCon dflags id con args =
                              payload
 
                 -- BUILD THE OBJECT
-        ; emitStaticClosure closure_label closure_rep
+        ; emitDataLits closure_label closure_rep
 
         ; return () }
 
index 8b3616f..d47a016 100644 (file)
@@ -12,7 +12,6 @@ module StgCmmUtils (
         cgLit, mkSimpleLit,
         emitDataLits, mkDataLits,
         emitRODataLits, mkRODataLits,
-        emitStaticClosure,
         emitRtsCall, emitRtsCallWithResult, emitRtsCallGen,
         assignTemp, newTemp,
 
@@ -321,11 +320,6 @@ emitRODataLits :: CLabel -> [CmmLit] -> FCode ()
 -- Emit a read-only data block
 emitRODataLits lbl lits = emitDecl (mkRODataLits lbl lits)
 
-emitStaticClosure :: CLabel -> [CmmLit] -> FCode ()
--- Emit a static closure data block, which is only used at startup time.
--- Eventually make this READ ONLY(?)
-emitStaticClosure lbl lits = emitDecl (mkDataLits StaticClosures lbl lits)
-
 newStringCLit :: String -> FCode CmmLit
 -- Make a global definition for the string,
 -- and return its label
index 6115b88..1dbfb4b 100644 (file)
@@ -56,7 +56,6 @@ isSecConstant ReadOnlyData            = True
 isSecConstant RelocatableReadOnlyData = True
 isSecConstant ReadOnlyData16          = True
 isSecConstant Data                    = False
-isSecConstant StaticClosures          = False
 isSecConstant UninitialisedData       = False
 isSecConstant (OtherSection _)        = False
 
index 36db75a..e62a1c4 100644 (file)
@@ -291,7 +291,6 @@ pprSectionHeader seg =
   ReadOnlyData16
    | osDarwin       -> text ".const\n\t.align 4"
    | otherwise      -> text ".section .rodata\n\t.align 4"
-  StaticClosures    -> text ".section staticclosures,\"aw\"\n\t.align 2"
   OtherSection _ ->
       panic "PprMach.pprSectionHeader: unknown section"
 
index c0ae9c1..c734687 100644 (file)
@@ -334,7 +334,6 @@ pprSectionHeader seg = case seg of
                     -> text ".text\n\t.align 8"
   UninitialisedData -> text ".bss\n\t.align 8"
   ReadOnlyData16    -> text ".data\n\t.align 16"
-  StaticClosures    -> text ".section staticclosures,\"aw\"\n\t.align 8"
   OtherSection _    -> panic "PprMach.pprSectionHeader: unknown section"
 
 
index 6449d8e..cc39557 100644 (file)
@@ -389,7 +389,6 @@ pprSectionHeader seg =
                         -> text ".const_data\n\t.align 2"
       UninitialisedData -> text ".data\n\t.align 2"
       ReadOnlyData16    -> text ".const\n\t.align 4"
-      StaticClosures    -> text ".section staticclosures,\"aw\"\n\t.align 2"
       OtherSection _    -> panic "X86.Ppr.pprSectionHeader: unknown section"
   | otherwise ->
      case seg of
@@ -400,7 +399,6 @@ pprSectionHeader seg =
                         -> text ".const_data\n\t.align 3"
       UninitialisedData -> text ".data\n\t.align 3"
       ReadOnlyData16    -> text ".const\n\t.align 4"
-      StaticClosures    -> text ".section staticclosures,\"aw\"\n\t.align 3"
       OtherSection _    -> panic "PprMach.pprSectionHeader: unknown section"
  _
   | target32Bit platform ->
@@ -412,7 +410,6 @@ pprSectionHeader seg =
                         -> text ".section .data\n\t.align 4"
       UninitialisedData -> text ".section .bss\n\t.align 4"
       ReadOnlyData16    -> text ".section .rodata\n\t.align 16"
-      StaticClosures    -> text ".section staticclosures,\"aw\"\n\t.align 4"
       OtherSection _    -> panic "X86.Ppr.pprSectionHeader: unknown section"
   | otherwise ->
      case seg of
@@ -423,7 +420,6 @@ pprSectionHeader seg =
                         -> text ".section .data\n\t.align 8"
       UninitialisedData -> text ".section .bss\n\t.align 8"
       ReadOnlyData16    -> text ".section .rodata.cst16\n\t.align 16"
-      StaticClosures    -> text ".section staticclosures,\"aw\"\n\t.align 8"
       OtherSection _    -> panic "PprMach.pprSectionHeader: unknown section"