[Bug target/39226] [4.4 Regression] gcc_assert (verify_initial_elim_offsets ()); ICE
--- Comment #6 from jakub at gcc dot gnu dot org 2009-03-03 14:25 --- http://gcc.gnu.org/ml/gcc-patches/2009-03/msg00148.html patch posted. -- jakub at gcc dot gnu dot org changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc- ||patches/2009- ||03/msg00148.html http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39226
[Bug target/39226] [4.4 Regression] gcc_assert (verify_initial_elim_offsets ()); ICE
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39226
[Bug target/39226] [4.4 Regression] gcc_assert (verify_initial_elim_offsets ()); ICE
--- Comment #1 from pinskia at gmail dot com 2009-02-18 10:30 --- Subject: Re: New: [4.4 Regression] gcc_assert (verify_initial_elim_offsets ()); ICE This is mostly likely due to my no micro code patch. I see what causes it tommorow. Sent from my iPhone On Feb 17, 2009, at 11:55 PM, jakub at gcc dot gnu dot org gcc-bugzi...@gcc.gnu.org wrote: /* { dg-do compile } */ /* { dg-options -O2 } */ /* { dg-options -O2 -mtune=cell -mminimal-toc { target { powerpc*- *-* lp64 } } } */ struct A { char *a; unsigned int b : 1; unsigned int c : 31; }; struct B { struct A *d; }; void foo (struct B *x, unsigned long y) { if (x-d[y].c) return; if (x-d[y].b) x-d[y].a = 0; } ICEs with -m64 -O2 -mtune=cell -mminimal-toc, as elimination offsets change. -- Summary: [4.4 Regression] gcc_assert (verify_initial_elim_offsets ()); ICE Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org GCC target triplet: powerpc64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39226 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39226
[Bug target/39226] [4.4 Regression] gcc_assert (verify_initial_elim_offsets ()); ICE
--- Comment #2 from jakub at gcc dot gnu dot org 2009-02-18 12:28 --- Yeah. Unlike anddi3_internal3_mc insn, anddi3_internal3_nomc only has an alternative with t for the and64_2_operand that is not slightly disparaged (?s), so for masks that match mask_operand or mask64_operand reload decides to reload the DImode constant into register, which needs to be put into memory and needs a TOC register etc. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39226
[Bug target/39226] [4.4 Regression] gcc_assert (verify_initial_elim_offsets ()); ICE
--- Comment #3 from pinskia at gcc dot gnu dot org 2009-02-18 19:34 --- Hmm, for the PS3 toolchain, I think I just removed anddi3_internal3_mc. Mine. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |pinskia at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-02-18 19:34:53 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39226
[Bug target/39226] [4.4 Regression] gcc_assert (verify_initial_elim_offsets ()); ICE
--- Comment #4 from jakub at gcc dot gnu dot org 2009-02-18 19:40 --- You mean anddi3_internal3_nomc, right? If so, I guess anddi3_internal2_nomc should be removed too. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39226
[Bug target/39226] [4.4 Regression] gcc_assert (verify_initial_elim_offsets ()); ICE
--- Comment #5 from pinskia at gcc dot gnu dot org 2009-02-18 19:41 --- (In reply to comment #4) You mean anddi3_internal3_nomc, right? If so, I guess anddi3_internal2_nomc should be removed too. I will have to look at what I did, I know I ran into a case where a constant was being generated but really does not need to be generated ... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39226
[Bug target/39226] [4.4 Regression] gcc_assert (verify_initial_elim_offsets ()); ICE
-- jakub at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39226