Commit 6b032db4 authored by Jan Stolarek's avatar Jan Stolarek

Remove unused module

This commit removes module StgCmmGran which has only no-op functions.
According to comments in the module, it was used by GpH, but GpH
project seems to be dead for a couple of years now.
parent e5374a1b
......@@ -22,7 +22,6 @@ import StgCmmCon
import StgCmmHeap
import StgCmmProf
import StgCmmTicky
import StgCmmGran
import StgCmmLayout
import StgCmmUtils
import StgCmmClosure
......@@ -477,7 +476,6 @@ closureCodeBody top_lvl bndr cl_info cc args arity body fv_details
; let node_points = nodeMustPointToIt dflags lf_info
node' = if node_points then Just node else Nothing
; when node_points (ldvEnterClosure cl_info)
; granYield arg_regs node_points
-- Main payload
; entryHeapCheck cl_info node' arity arg_regs $ do
......@@ -541,7 +539,6 @@ thunkCode cl_info fv_details _cc node arity body
; let node_points = nodeMustPointToIt dflags (closureLFInfo cl_info)
node' = if node_points then Just node else Nothing
; ldvEnterClosure cl_info -- NB: Node always points when profiling
; granThunk node_points
-- Heap overflow check
; entryHeapCheck cl_info node' arity [] $ do
......
-----------------------------------------------------------------------------
--
-- (c) The University of Glasgow -2006
--
-- Code generation relaed to GpH
-- (a) parallel
-- (b) GranSim
--
-----------------------------------------------------------------------------
module StgCmmGran (
staticGranHdr,staticParHdr,
granThunk, granYield,
doGranAllocate
) where
-- This entire module consists of no-op stubs at the moment
-- GranSim worked once, but it certainly doesn't any more
-- I've left the calls, though, in case anyone wants to resurrect it
import StgCmmMonad
import CmmExpr
staticGranHdr :: [CmmLit]
staticGranHdr = []
staticParHdr :: [CmmLit]
staticParHdr = []
doGranAllocate :: VirtualHpOffset -> FCode ()
-- Must be lazy in the amount of allocation
doGranAllocate _ = return ()
granYield :: [LocalReg] -> Bool -> FCode ()
granYield _regs _node_reqd = return ()
granThunk :: Bool -> FCode ()
granThunk _node_points = return ()
-----------------------------------------------------------------
{- ------- Everything below here is commented out -------------
-----------------------------------------------------------------
-- Parallel header words in a static closure
staticParHdr :: [CmmLit]
-- Parallel header words in a static closure
staticParHdr = []
staticGranHdr :: [CmmLit]
-- Gransim header words in a static closure
staticGranHdr = []
doGranAllocate :: CmmExpr -> Code
-- macro DO_GRAN_ALLOCATE
doGranAllocate hp
| not opt_GranMacros = return ()
| otherwise = panic "doGranAllocate"
-------------------------
granThunk :: Bool -> FCode ()
-- HWL: insert macros for GrAnSim; 2 versions depending on liveness of node
-- (we prefer fetchAndReschedule-style context switches to yield ones)
granThunk node_points
| node_points = granFetchAndReschedule [] node_points
| otherwise = granYield [] node_points
granFetchAndReschedule :: [(Id,GlobalReg)] -- Live registers
-> Bool -- Node reqd?
-> Code
-- Emit code for simulating a fetch and then reschedule.
granFetchAndReschedule regs node_reqd
| opt_GranMacros && (node `elem` map snd regs || node_reqd)
= do { fetch
; reschedule liveness node_reqd }
| otherwise
= return ()
where
liveness = mkRegLiveness regs 0 0
fetch = panic "granFetch"
-- Was: absC (CMacroStmt GRAN_FETCH [])
--HWL: generate GRAN_FETCH macro for GrAnSim
-- currently GRAN_FETCH and GRAN_FETCH_AND_RESCHEDULE are miai
reschedule liveness node_reqd = panic "granReschedule"
-- Was: absC (CMacroStmt GRAN_RESCHEDULE [
-- mkIntCLit (I# (word2Int# liveness_mask)),
-- mkIntCLit (if node_reqd then 1 else 0)])
-------------------------
-- The @GRAN_YIELD@ macro is taken from JSM's code for Concurrent Haskell. It
-- allows to context-switch at places where @node@ is not alive (it uses the
-- @Continue@ rather than the @EnterNodeCode@ function in the RTS). We emit
-- this kind of macro at the beginning of the following kinds of basic bocks:
-- \begin{itemize}
-- \item Slow entry code where node is not alive (see @StgCmmClosure.lhs@). Normally
-- we use @fetchAndReschedule@ at a slow entry code.
-- \item Fast entry code (see @CgClosure.lhs@).
-- \item Alternatives in case expressions (@CLabelledCode@ structures), provided
-- that they are not inlined (see @CgCases.lhs@). These alternatives will
-- be turned into separate functions.
granYield :: [(Id,GlobalReg)] -- Live registers
-> Bool -- Node reqd?
-> Code
granYield regs node_reqd
| opt_GranMacros && node_reqd = yield liveness
| otherwise = return ()
where
liveness = mkRegLiveness regs 0 0
yield liveness = panic "granYield"
-- Was : absC (CMacroStmt GRAN_YIELD
-- [mkIntCLit (I# (word2Int# liveness_mask))])
-}
......@@ -30,7 +30,6 @@ import StgCmmUtils
import StgCmmMonad
import StgCmmProf
import StgCmmTicky
import StgCmmGran
import StgCmmClosure
import StgCmmEnv
......@@ -135,8 +134,7 @@ emitSetDynHdr base info_ptr ccs
where
header :: DynFlags -> [CmmExpr]
header dflags = [info_ptr] ++ dynProfHdr dflags ccs
-- ToDo: Gransim stuff
-- ToDo: Parallel stuff
-- ToDof: Parallel stuff
-- No ticky header
hpStore :: CmmExpr -> [CmmExpr] -> [VirtualHpOffset] -> FCode ()
......@@ -207,16 +205,11 @@ mkStaticClosure :: DynFlags -> CLabel -> CostCentreStack -> [CmmLit]
-> [CmmLit] -> [CmmLit] -> [CmmLit] -> [CmmLit]
mkStaticClosure dflags info_lbl ccs payload padding static_link_field saved_info_field
= [CmmLabel info_lbl]
++ variable_header_words
++ staticProfHdr dflags ccs
++ concatMap (padLitToWord dflags) payload
++ padding
++ static_link_field
++ saved_info_field
where
variable_header_words
= staticGranHdr
++ staticParHdr
++ staticProfHdr dflags ccs
-- JD: Simon had ellided this padding, but without it the C back end asserts
-- failure. Maybe it's a bad assertion, and this padding is indeed unnecessary?
......@@ -529,7 +522,6 @@ heapCheck checkStack checkYield do_gc code
| otherwise = Nothing
; codeOnly $ do_checks stk_hwm checkYield mb_alloc_bytes do_gc
; tickyAllocHeap True hpHw
; doGranAllocate hpHw
; setRealHp hpHw
; code }
......
......@@ -208,7 +208,6 @@ Library
StgCmmEnv
StgCmmExpr
StgCmmForeign
StgCmmGran
StgCmmHeap
StgCmmHpc
StgCmmArgRep
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment