minor changes to Cmm left over from September 2007
[ghc-hetmet.git] / compiler / cmm / OptimizationFuel.hs
index 6e05cdc..9627297 100644 (file)
@@ -7,6 +7,7 @@ module OptimizationFuel
     , lastFuelPassInState, fuelExhaustedInState, fuelRemainingInState
     , fuelDecrementState
     , runFuel, runFuelIO, runFuelWithLastPass, fuelConsumingPass
+    , runWithInfiniteFuel
     , FuelMonad(..)
     )
 where
@@ -48,11 +49,6 @@ oneLessFuel f = f
 diffFuel _ _ = 0
 #endif
 
--- stop warnings about things that aren't used
-_unused :: {-State#-} () -> FS.FastString
-_unused = undefined panic
-
-
 data FuelState = FuelState { fs_fuellimit :: OptimizationFuel, fs_lastpass :: String }
 newtype FuelMonad a = FuelMonad (FuelState -> (a, FuelState))
 
@@ -64,6 +60,8 @@ fuelConsumingPass name f = do fuel <- fuelRemaining
 
 runFuel             :: FuelMonad a -> FuelConsumer a
 runFuelWithLastPass :: FuelMonad a -> FuelConsumer (a, String)
+runWithInfiniteFuel :: FuelMonad a -> a
+
 
 runFuelIO :: IORef String -> IORef OptimizationFuel -> FuelMonad a -> IO a
 runFuelIO pass_ref fuel_ref (FuelMonad f) =
@@ -83,6 +81,8 @@ runFuel             (FuelMonad f) fuel = let (a, s) = f $ initialFuelState fuel
 runFuelWithLastPass (FuelMonad f) fuel = let (a, s) = f $ initialFuelState fuel
                                          in ((a, fs_lastpass s), fs_fuellimit s)
 
+runWithInfiniteFuel (FuelMonad f) = fst $ f $ initialFuelState $ tankFilledTo maxBound
+
 lastFuelPassInState :: FuelState -> String
 lastFuelPassInState = fs_lastpass