This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/34998] New: [4.3 Regression] gcc.c-torture/execute/20040709-1.c fails for -EL -mips16 -O3
- From: "rsandifo at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 Jan 2008 14:40:04 -0000
- Subject: [Bug rtl-optimization/34998] New: [4.3 Regression] gcc.c-torture/execute/20040709-1.c fails for -EL -mips16 -O3
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
gcc.c-torture/execute/20040709-1.c fails for -EL -mips16 -O3 with:
20040709-1.c:93: internal compiler error: in insert_save, at caller-save.c:745
This is due to the new subreg liveness checking. We have a bb with:
A: call
...
B: set of (subreg:HI (reg:SI foo))
...
C: use of (reg:SI foo)
and no other references to (reg:SI foo) in the function.
We allocate FOO a call-clobbered register, and wrongly
think that it is still live at A. This is because
global.c:build_insn_chain tracks the liveness of each
byte of FOO separately, and wrongly thinks that the
B leaves the upper two bytes live. (SUBREG lvalues
clobber the whole word span, not just the byte span.)
--
Summary: [4.3 Regression] gcc.c-torture/execute/20040709-1.c
fails for -EL -mips16 -O3
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rsandifo at gcc dot gnu dot org
GCC target triplet: mipsisa64-elfoabi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34998