> -----Original Message-----
> From: Jeff Law [mailto:l...@redhat.com]
> Sent: Friday, September 05, 2014 12:45 PM
> To: Zhenqiang Chen
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH, ira] Miss checks in split_live_ranges_for_shrink_wrap
> 
> On 09/01/14 02:13, Zhenqiang Chen wrote:
> >
> > To split live-range of register, split_live_ranges_for_shrink_wrap
> > will introduce additional register copies. If such copies can not be
> > optimized by later optimizations, it will lead to code size and
performance
> regression.
> > My tests on ARM THUMB1 code size show lots of regressions due to
> > additional register copies. Shrink-wrap is not enabled for ARM THUMB1,
> > so I think split_live_ranges_for_shrink_wrap should not be called.
> So has anyone looked at why IRA ends up selecting different registers
> for the source/dest of these copies?   Odds are it's just an artifact of
> the heuristics in use, but I'd like to make sure there isn't something
> inherently wrong happening in IRA that's causing it to not tie the
source/dest
> of those copies.
> 
> 
> 
> > ChangeLog:
> > 2014-09-01  Zhenqiang Chen  <zhenqiang.c...@arm.com>
> >
> >          * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
> >          * ira.c: #include "shrink-wrap.h"
> >          (split_live_ranges_for_shrink_wrap): Use
> SHRINK_WRAPPING_ENABLED.
> >          * ifcvt.c: #include "shrink-wrap.h"
> >          (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
> >
> > testsuite/ChangeLog:
> > 2014-09-01  Zhenqiang Chen  <zhenqiang.c...@arm.com>
> >
> >          * gcc.target/arm/split-live-ranges-for-shrink-wrap.c: New test.
> Thanks.  OK for the trunk.

Thanks. The patch is installed @r215041.
 
> As noted above, it'd may be worth spending a little time looking at the
> regressions without this patch installed to see why IRA isn't doing a good
job
> of tying the source/dest of these copies together -- perhaps there's
> something that's been overlooked and fixing it may be beneficial.

I had investigated it. Compared with 4.8, the allocation order and conflict
cost might be the root cause. A bug is submitted: PR63210.

Thanks!
-Zhenqiang 
 
> jeff
> 




Reply via email to