#5173: Implement forward substitution of constants in the Cmm mini-inliner
---------------------------------+------------------------------------------
Reporter: tibbe | Owner: simonmar
Type: feature request | Status: patch
Priority: high | Milestone: 7.2.1
Component: Compiler | Version: 7.0.3
Keywords: | Testcase:
Blockedby: | Difficulty:
Os: Unknown/Multiple | Blocking:
Architecture: Unknown/Multiple | Failure: None/Unknown
---------------------------------+------------------------------------------
Comment(by tibbe):
I've updated the patches to apply constant folding to the source
expression rather to the target expression after inlining. This allows
assignments like this one to be inlined:
{{{
_ccZ::I64 = 0 << 7;
_cd3::I64 = _ccZ;
}}}
Previously the forward substitution would only take place if `_ccZ` had
already been substituted "in to", like in this example:
{{{
_cd1::I64 = 0;
_ccZ::I64 = 0 << _cd1;
_cd3::I64 = _ccZ;
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5173#comment:10>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs