summaryrefslogtreecommitdiff
path: root/compiler/cmm/CmmPipeline.hs
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2018-02-03 19:49:21 -0500
committerBen Gamari <ben@smart-cactus.org>2018-02-03 20:35:11 -0500
commit50adbd7c5fe5894d3e6e2a58b353ed07e5f8949d (patch)
treecb9fddb03ae690dafc4b4f736b0d4f3847055e67 /compiler/cmm/CmmPipeline.hs
parente5d0101121cf4ce4dffe59025360096ee57c5372 (diff)
downloadhaskell-50adbd7c5fe5894d3e6e2a58b353ed07e5f8949d.tar.gz
cmm: Revert more aggressive CBE due to #14226
Trac #14226 noted that the C-- CBE pass frequently fails to common up semantically identical blocks due to the differences in local register naming. These patches fixed this by making the pass consider equality up to alpha-renaming. However, the new logic failed to consider the possibility that local register naming *may* matter across multiple blocks. This lead to the regression #14754. I'll need to do a bit of thinking on a proper solution to this but in the meantime I'm reverting all four patches. This reverts commit a27056f9823f8bbe2302f1924b3ab38fd6752e37. This reverts commit 6f990c54f922beae80362fe62426beededc21290. This reverts commit 9aa73892e10e90a1799b9277da593e816a827364. This reverts commit 7920a7d9c53083b234e060a3e72f00b601a46808.
Diffstat (limited to 'compiler/cmm/CmmPipeline.hs')
-rw-r--r--compiler/cmm/CmmPipeline.hs2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/cmm/CmmPipeline.hs b/compiler/cmm/CmmPipeline.hs
index b90b92a92f..4d109a4086 100644
--- a/compiler/cmm/CmmPipeline.hs
+++ b/compiler/cmm/CmmPipeline.hs
@@ -68,7 +68,7 @@ cpsTop hsc_env proc =
----------- Eliminate common blocks -------------------------------------
g <- {-# SCC "elimCommonBlocks" #-}
- condPass Opt_CmmElimCommonBlocks (elimCommonBlocks dflags) g
+ condPass Opt_CmmElimCommonBlocks elimCommonBlocks g
Opt_D_dump_cmm_cbe "Post common block elimination"
-- Any work storing block Labels must be performed _after_