[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #14 from hp at gcc dot gnu dot org 2005-11-19 21:56 --- Subject: Bug 24750 Author: hp Date: Sat Nov 19 21:56:17 2005 New Revision: 107231 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107231 Log: PR middle-end/24912 PR middle-end/24750 * reload.c (find_reloads_address_1): Mention dependency on gen_reload. * reload1.c (gen_reload): For IN with an unary operation, try moving inner expression to OUT if trivial SET is not valid. Confirm that the result is valid. Move common code block into... (emit_insn_if_valid_for_reload): New function. Modified: trunk/gcc/ChangeLog trunk/gcc/reload.c trunk/gcc/reload1.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #15 from hp at gcc dot gnu dot org 2005-11-19 21:59 --- Subject: Bug 24750 Author: hp Date: Sat Nov 19 21:59:48 2005 New Revision: 107233 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107233 Log: PR middle-end/24912 PR middle-end/24750 * reload.c (find_reloads_address_1): Mention dependency on gen_reload. * reload1.c (gen_reload): For IN with an unary operation, try moving inner expression to OUT if trivial SET is not valid. Confirm that the result is valid. Move common code block into... (emit_insn_if_valid_for_reload): New function. Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/reload.c branches/gcc-4_1-branch/gcc/reload1.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #11 from hp at gcc dot gnu dot org 2005-11-11 23:17 --- Subject: Bug 24750 Author: hp Date: Fri Nov 11 23:17:16 2005 New Revision: 106804 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=106804 Log: PR middle-end/24750 * reload.c (find_reloads_address_1) case TRUNCATE, SIGN_EXTEND, ZERO_EXTEND: New cases. Modified: trunk/gcc/ChangeLog trunk/gcc/reload.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #12 from hp at gcc dot gnu dot org 2005-11-11 23:19 --- Subject: Bug 24750 Author: hp Date: Fri Nov 11 23:19:26 2005 New Revision: 106806 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=106806 Log: PR middle-end/24750 * gcc.dg/torture/pr24750-1.c, gcc.target/cris/torture/pr24750-2.c: New tests. Added: trunk/gcc/testsuite/gcc.dg/torture/pr24750-1.c trunk/gcc/testsuite/gcc.target/cris/torture/pr24750-2.c Modified: trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #13 from hp at gcc dot gnu dot org 2005-11-12 00:36 --- gah -- hp at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #8 from janis at gcc dot gnu dot org 2005-11-10 23:40 --- A regression hunt using a cris-axis-elf cross compiler on powerpc-linux identified this patch: r95823 | hp | 2005-03-03 03:53:29 + (Thu, 03 Mar 2005) | 40 lines http://gcc.gnu.org/viewcvs?view=revrev=95823 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #9 from hp at bitrange dot com 2005-11-11 01:06 --- Subject: Re: [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes On Thu, 10 Nov 2005, janis at gcc dot gnu dot org wrote: --- Comment #8 from janis at gcc dot gnu dot org 2005-11-10 23:40 --- A regression hunt using a cris-axis-elf cross compiler on powerpc-linux identified this patch: r95823 | hp | 2005-03-03 03:53:29 + (Thu, 03 Mar 2005) | 40 lines http://gcc.gnu.org/viewcvs?view=revrev=95823 (Wherein SRP and MOF are first described as actual registers.) Yeah, well, sort-of. Cause of exposure, but not the bug. Nice to know that the reghunt scripts work, though! brgds, H-P -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #6 from hp at gcc dot gnu dot org 2005-11-10 00:47 --- A much shorter, but CRIS-specific testcase, that fails for the same reason but in a slightly different way is: int f (short *a, char *y) { asm ( : : : r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12); return y[*a]; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #7 from hp at gcc dot gnu dot org 2005-11-10 01:23 --- The slightly different way being: /tmp/st20.c: In function âfâ: /tmp/st20.c:6: internal compiler error: output_operand: unexpected index-type in cris_print_index -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #1 from hp at gcc dot gnu dot org 2005-11-09 02:23 --- I should mention that (plus:SI (sign_extend:SI (reg:HI 10 r10)) (reg:SI 1 r1)) is not a valid address, but (plus:SI (sign_extend:SI (sign_extend:SI (mem:HI (post_inc:SI (reg/f:SI 12 r12) (reg:SI 1 r1)) is; the problem seems related to reload choosing to reload inner MEM expressions replacing them with REG even though that's not needed and sometimes (i.e. for some targets) not valid. The real need is just to reload SRP. Or perhaps that SRP was chosen as part of an address in the first place. Or both. Or maybe we should just bail out and declare LEGITIMIZE_RELOAD_ADDRESS as a sometimes actually *necessary* macro rather than just for optimization, for certain cases, like when a MEM inside an expression can't be validly replaced with a REG. -- hp at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2005-11-09 02:23:16 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #2 from hp at gcc dot gnu dot org 2005-11-09 02:30 --- Created an attachment (id=10182) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10182action=view) Compile with -Os Note the brittleness of the test-case. Apparently there's a bug, PR 20656, causing the empty, seemingly-reducible, sometimes redundant for-loops aren't gone when RTL is generated and can't be replaced with a single assignment without causing the test-case to PASS. For example, the for (i = 1; i = u0; i++) { } loop can't be removed. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.1.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #3 from hp at gcc dot gnu dot org 2005-11-09 03:17 --- Pinskia brings to attention that the loop removal thingy is more related to PR 23361. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #4 from hp at gcc dot gnu dot org 2005-11-09 03:24 --- And to PR 18527. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
--- Comment #5 from hp at gcc dot gnu dot org 2005-11-09 03:47 --- And PR 20656. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750