cse-ghc-plugin-0.1.1: CSE/Plugin.hs
module CSE.Plugin
( plugin -- :: Plugin
) where
import CSE.Pass (cseProgram)
import GhcPlugins
plugin :: Plugin
plugin = defaultPlugin {
installCoreToDos = install
}
-- You should probably run this with -fno-cse !
install :: [CommandLineOption] -> [CoreToDo] -> CoreM [CoreToDo]
install _ todos = do
reinitializeGlobals
return $ CoreDoPasses [cse] : todos
where cse = CoreDoPluginPass "Common Subexpression Elimination" (bindsOnlyPass cseProgram)