From c8bebd3d95f8ec4d723b5628108745c8174bb3c4 Mon Sep 17 00:00:00 2001 From: Norman Ramsey Date: Sat, 15 Sep 2007 21:51:38 +0000 Subject: [PATCH] add another way to run in the fuel monad (this is a mess right now) --- compiler/cmm/DFMonad.hs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/compiler/cmm/DFMonad.hs b/compiler/cmm/DFMonad.hs index e8afab4..970cdcb 100644 --- a/compiler/cmm/DFMonad.hs +++ b/compiler/cmm/DFMonad.hs @@ -2,6 +2,7 @@ module DFMonad ( OptimizationFuel , DFTx, runDFTx, lastTxPass, txDecrement, txRemaining, txExhausted + , functionalDFTx , DataflowLattice(..) , DataflowAnalysis @@ -108,6 +109,11 @@ runDFA lattice (DFA f) = fst $ f lattice initDFAState -- XXX DFTx really needs to be in IO, so we can dump programs in -- intermediate states of optimization ---NR +functionalDFTx :: String -> (OptimizationFuel -> (a, OptimizationFuel)) -> DFTx a +functionalDFTx name pass = DFTx f + where f s = let (a, fuel) = pass (df_txlimit s) + in (a, DFTxState fuel name) + runDFTx :: OptimizationFuel -> DFTx a -> a --- should only be called once per program! runDFTx lim (DFTx f) = fst $ f $ DFTxState lim "" -- 1.7.10.4