diff options
| author | unknown <simonpj@.europe.corp.microsoft.com> | 2011-04-13 09:18:39 +0100 |
|---|---|---|
| committer | unknown <simonpj@.europe.corp.microsoft.com> | 2011-04-13 09:18:39 +0100 |
| commit | 8419203b7eb5aa4bb13f8d1263632de4d10a4048 (patch) | |
| tree | 811359feb7f282d19bc63f34e66663f812e7be0a /compiler/cmm/CmmSpillReload.hs | |
| parent | 83f16ade9edf272c88c6b2ed8b8e951b905fe130 (diff) | |
| parent | a52ff7619e8b7d74a9d933d922eeea49f580bca8 (diff) | |
| download | haskell-8419203b7eb5aa4bb13f8d1263632de4d10a4048.tar.gz | |
Merge branch 'master' of c:/code/HEAD-git/. into ghc-generics
Diffstat (limited to 'compiler/cmm/CmmSpillReload.hs')
| -rw-r--r-- | compiler/cmm/CmmSpillReload.hs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/cmm/CmmSpillReload.hs b/compiler/cmm/CmmSpillReload.hs index 4e2dd38fd3..17364ad052 100644 --- a/compiler/cmm/CmmSpillReload.hs +++ b/compiler/cmm/CmmSpillReload.hs @@ -100,11 +100,11 @@ dualLiveTransfers entry procPoints = mkBTransfer3 first middle last where check live id x = if id == entry then noLiveOnEntry id (in_regs live) x else x middle :: CmmNode O O -> DualLive -> DualLive - middle m live = changeStack updSlots $ changeRegs (xferLiveMiddle m) (changeRegs regs_in live) - where xferLiveMiddle = case getBTransfer3 xferLive of (_, middle, _) -> middle - regs_in :: RegSet -> RegSet - regs_in live = case m of CmmUnsafeForeignCall {} -> emptyRegSet - _ -> live + middle m = changeStack updSlots + . changeRegs updRegs + where -- Reuse middle of liveness analysis from CmmLive + updRegs = case getBTransfer3 xferLive of (_, middle, _) -> middle m + updSlots live = foldSlotsUsed reload (foldSlotsDefd spill live m) m spill live s@(RegSlot r, _, _) = check s $ deleteFromRegSet live r spill live _ = live |
