This is the mail archive of the
mailing list for the GCC project.
RE: [PATCH] Fix PR66168: ICE due to incorrect invariant register info
- From: "Thomas Preud'homme" <thomas dot preudhomme at arm dot com>
- To: "'Jeff Law'" <law at redhat dot com>, "'Steven Bosscher'" <stevenb dot gcc at gmail dot com>
- Cc: "GCC Patches" <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 25 May 2015 09:26:12 +0800
- Subject: RE: [PATCH] Fix PR66168: ICE due to incorrect invariant register info
- Authentication-results: sourceware.org; auth=none
- References: <000001d0921d$003785d0$00a69170$ at arm dot com> <CABu31nMgSwQ3=6wuB5uYgk8T8kJjgVcKN2MwWdsStYP9Q9E9Tg at mail dot gmail dot com> <000101d092de$cabd1a10$60374e30$ at arm dot com> <000201d0936a$6e361940$4aa24bc0$ at arm dot com> <555FB398 dot 2060000 at redhat dot com>
> From: Jeff Law [mailto:firstname.lastname@example.org]
> Sent: Saturday, May 23, 2015 6:54 AM
> > - if (!can_move_invariant_reg (loop, inv, reg))
> > + if (!can_move_invariant_reg (loop, inv, dest))
> Won't this run into into the same problem if DEST is a SUBREG?
One of the very first test in can_move_invariant_reg is:
if (!REG_P (reg) || !HARD_REGISTER_P (reg))
So in case of a subreg the insn will not be moved which will execute the same
code as before my patch. It would be nicer if it could work with subreg of
course but this makes for a much smaller and safer patch.