This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH], PowerPC support to enable -mlra and/or -mfloat128


On 07/12/2016 02:48 PM, Bernd Schmidt wrote:
No. You can reproduce issues with Blackfin easily by enabling LRA for
it, and I described the C6X issues when the LRA patches were posted for
review.

That was here:
  https://gcc.gnu.org/ml/gcc-patches/2012-10/msg00235.html

The Blackfin thing happens frequently with -fomit-frame-pointer when we have

(insn 66 64 70 8 (set (reg:SI 96 [ ivtmp.32 ])
        (reg/f:SI 15 FP)) 19 {*movsi_insn}

Which LRA transforms to an invalid insn:

(insn 66 64 70 8 (set (reg:SI 15 FP [orig:96 ivtmp.32 ] [96])
        (plus:SI (reg/f:SI 14 SP)
            (const_int 4 [0x4]))) 50 {addsi3}
     (expr_list:REG_EQUAL (reg/f:SI 15 FP)
        (nil)))

Haven't fully debugged it but it looks like an instance of the same problem: not using the correct register numbers in elimination. An FP+FP addition would be fine (which is how I'm guessing we arrived at this pattern), but once you substitute the real register number you get an invalid insn. So LRA is somewhat defective in this area.


Bernd


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]