[Bug target/39076] internal compiler error when cross-compiling flac
ramana dot r at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Feb 3 21:43:00 GMT 2009
------- Comment #4 from ramana dot r at gmail dot com 2009-02-03 21:43 -------
(In reply to comment #2)
> No problem with the trunk, but it's still there in the 4.3 branch.
>
> Here's a test case. Requires -funroll-loops -Os, no problem with any other -O,
> or without -funroll-loops, curiously.
>
> int f(int x, int y) {
> int bytes = 4 * x + y;
> if (bytes == 0)
> return 0;
> return bytes + 1;
> }
>
I get the same problem even with a arm-none-eabi toolchain with the 4.3 branch
only.
For this particular testcase, the ICE is generated in final.c :
cleanup_subreg_operands for the alter_subreg call for the following rtx.
(insn:HI 9 8 17 /home/ramana/test.c:3 (parallel [
(set (reg:CC_NOOV 24 cc)
(compare:CC_NOOV (plus:SI (mult:SI (reg:SI 0 r0 [ x ])
(const_int 4 [0x4]))
(reg:SI 1 r1 [ y ]))
(const_int 0 [0x0])))
(set (reg/v:SI 0 r0 [orig:133 bytes ] [133])
(plus:SI (cc0)
(cc0)))
]) 265 {*arith_shiftsi_compare0} (expr_list:REG_DEAD (reg:SI 1 r1 [ y
])
(nil)))
Looking at the dumps this rtx is generated by the rename registers pass in
4.3.x . In trunk however rename registers does not generate this rtx and hence
there is no problem. It could still be latent but one has to dig deeper.
--
ramana dot r at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rearnsha at arm dot com,
| |ramana dot r at gmail dot
| |com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39076
More information about the Gcc-bugs
mailing list