X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fcmm%2FCmmExpr.hs;h=791731b1aa379e3711bf689049e795ec7fab81e2;hp=efa7fe32e709ebccece5f1256b94cc630f604c3d;hb=7ed4f0716220b03fe5e04100ddbbc9e37d5323fe;hpb=78e55cb0e0d8c252e87df296e58d3cea385b3c3d diff --git a/compiler/cmm/CmmExpr.hs b/compiler/cmm/CmmExpr.hs index efa7fe3..791731b 100644 --- a/compiler/cmm/CmmExpr.hs +++ b/compiler/cmm/CmmExpr.hs @@ -8,7 +8,7 @@ module CmmExpr , GlobalReg(..), globalRegRep, spReg, hpReg, spLimReg, nodeReg, node , UserOfLocalRegs, foldRegsUsed , RegSet, emptyRegSet, elemRegSet, extendRegSet, deleteFromRegSet, mkRegSet - , plusRegSet, minusRegSet + , plusRegSet, minusRegSet, timesRegSet ) where @@ -95,7 +95,7 @@ elemRegSet :: LocalReg -> RegSet -> Bool extendRegSet :: RegSet -> LocalReg -> RegSet deleteFromRegSet :: RegSet -> LocalReg -> RegSet mkRegSet :: [LocalReg] -> RegSet -minusRegSet, plusRegSet :: RegSet -> RegSet -> RegSet +minusRegSet, plusRegSet, timesRegSet :: RegSet -> RegSet -> RegSet emptyRegSet = emptyUniqSet elemRegSet = elementOfUniqSet @@ -104,6 +104,7 @@ deleteFromRegSet = delOneFromUniqSet mkRegSet = mkUniqSet minusRegSet = minusUniqSet plusRegSet = unionUniqSets +timesRegSet = intersectUniqSets ----------------------------------------------------------------------------- -- Register-use information for expressions and other types @@ -119,6 +120,9 @@ instance UserOfLocalRegs CmmReg where instance UserOfLocalRegs LocalReg where foldRegsUsed f z r = f z r +instance UserOfLocalRegs RegSet where + foldRegsUsed f = foldUniqSet (flip f) + instance UserOfLocalRegs CmmExpr where foldRegsUsed f z e = expr z e where expr z (CmmLit _) = z