[GHC] #12808: For primitive (Addr#) operations, Loop Invariant Code Flow not lifted outside the loop...

GHC ghc-devs at haskell.org
Tue Nov 8 09:05:31 UTC 2016


#12808: For primitive (Addr#) operations, Loop Invariant Code Flow not lifted
outside the loop...
-------------------------------------+-------------------------------------
        Reporter:  GordonBGood       |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Runtime           |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 As I understand it, these movements could not sensibly be hoisted at the
 Core level, or could they?  I'm failing to see how the code at the top
 lines up with the Cmm you are showing.  Maybe show STG code too, and say
 how they match up?  If we can do the floating in Core, that would be
 better!

 If the opportunity only gets exposed when we are in Cmm, I wonder if it's
 worth our doing this in Cmm, or whether it's best left to LLVM?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12808#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list