#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

Reply via email to