This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/51978] New: ext-elim-1.c ICE on powerpc64
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 24 Jan 2012 09:05:41 +0000
- Subject: [Bug rtl-optimization/51978] New: ext-elim-1.c ICE on powerpc64
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51978
Bug #: 51978
Summary: ext-elim-1.c ICE on powerpc64
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: rtl-optimization
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: jakub@gcc.gnu.org
CC: ebotcazou@gcc.gnu.org
The new testcase apparently ICEs on powerpc64-linux, supposedly -free has been
tested solely on x86_64-linux and i686-linux.
The problem is that add_removable_* uses note_stores to find the sign/zero
extending sets (wonder if it shouldn't use single_set instead, I guess that
should be sufficient for x86_64/i686 purposes) but then assumes that the
zero/sign extension is in a set right in PATTERN (cand->insn) by passing that
as set_pat (from which it uses XEXP (SET_SRC))).
The attached untested patch cures the ICE, still I wonder about the single_set
instead of note_stores, I'd expect the pass isn't really prepared to handle
multiple sets in parallel alongside with sign/zero extension anyway.
Additionally, I wonder if some of the PR51667 additions couldn't be dropped
again (4.8 material) now that we keep the UD/DU links for the whole duration of
the pass.