This is the mail archive of the
mailing list for the GCC project.
Re: Question about how to fix PR69052
- From: Jeff Law <law at redhat dot com>
- To: "Bin.Cheng" <amker dot cheng at gmail dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Tue, 26 Jan 2016 09:40:11 -0700
- Subject: Re: Question about how to fix PR69052
- Authentication-results: sourceware.org; auth=none
- References: <CAHFci280ObgaSxzCBiKKBfKONeYsXOue8i84hH=pDwynhC4PNQ at mail dot gmail dot com> <56A67CD9 dot 70405 at redhat dot com> <CAHFci2_=BHm7x3iv9YrFCb=rhrfpmLfH=CQ-=uy7cOyYRDpiwA at mail dot gmail dot com> <56A79E3A dot 7020908 at redhat dot com> <CAHFci28jYMfYKW3Gz=D-JNZ8GAMxcz79VC+faUOXJOedD-mBZA at mail dot gmail dot com>
On 01/26/2016 09:36 AM, Bin.Cheng wrote:
I'd like to see the key RTL heading into ix86_decompose_address --
mostly to make sure it's not being passed non-canonical RTL or somesuch.
On Tue, Jan 26, 2016 at 4:26 PM, Jeff Law <email@example.com> wrote:
On 01/26/2016 02:28 AM, Bin.Cheng wrote:
Yes, loop invariant now increased invariant cost if the invariant
can't be propagated into address expression. Problem is we check
propagation by simply replacing use with def in memory reference then
verifying result insn with verify_changes. Apparently more advanced
transforms are necessary, just like what combine does.
I am surprised that rtl_fwprop_addr doesn't handle this either, it's
an exact address expression propagation example.
So the question now becomes whether or not the work done by combine.c is
dependent on knowledge that is specific to combine or is it just a series of
transformations that we could make available (preferably moving it to
If we can factor the transformation out and shove it into simplify-rtx, then
it could be used elsewhere.
According to comment at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69052#c6, it should be
just re-arrangement of operands, if the comment itself holds.
In this way, the transformation is backend related, maybe better to
keep it in backend, right?