https://gcc.gnu.org/bugzilla/show_bug.cgi?id=18420
seurer at gcc dot gnu.org changed:
What|Removed |Added
Status|VERIFIED|CLOSED
CC|
--- Additional Comments From jgrimm2 at us dot ibm dot com 2004-11-30
14:49 ---
Verified this fixed mesa too.
--
What|Removed |Added
Status|RESOLVED
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-11-28
13:03 ---
Subject: Bug 18420
CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED] 2004-11-28 13:02:53
Modified files:
gcc: ChangeLog simplify-rtx.c
Log
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-28
15:40 ---
Fixed.
--
What|Removed |Added
Status|NEW |RESOLVED
--- Additional Comments From uweigand at gcc dot gnu dot org 2004-11-25
18:33 ---
Now that RTH's validate_subreg patch is in, I guess the right fix for
this problem might be to always return a SUBREG in simplify_gen_subreg
unless that SUBREG is actually invalid.
What do you think of
--
What|Removed |Added
Component|middle-end |rtl-optimization
Keywords||ice-on-valid-code
Summary|ICE
--- Additional Comments From jgrimm2 at us dot ibm dot com 2004-11-10
22:50 ---
Testcase reduced from the mesa context.c file.
Compiling this with -O2 segfaults on linux-powerpc64 segfaults.
typedef unsigned int size_t;
extern void *malloc (size_t __size) __attribute__
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-10
22:57 ---
Confirmed, also happens on powerpc-darwin with -O2 -fPIC.
--
What|Removed |Added
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-10
23:04 ---
Hmm, someone did an emit_rtx and did not end_sequence as the insn looks like:
(insn 143 0 0 (set (nil)
(reg:CC 75 cr7)) -1 (nil)
(nil))
--
What|Removed
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-10
23:45 ---
I was wrong in the sense that is the right RTL except that nill is wrong and is
being overwritten.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18420
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-10
23:49 ---
in gen_reload, we do:
emit_insn (gen_rtx_SET (VOIDmode, out, in));
but somehow the set gets changed for the out to be nil. Note out and in are
correct here.
After this we don't get the correct insn
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-10
23:58 ---
Never mind my comment about emit_insn (gen_rtx_SET because we are not
calling that but
7530emit_insn (gen_move_insn (out, in));
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18420
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-11
00:04 ---
The bug is in emit_move_insn_1, we set the out side to null for some reason.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18420
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-11
00:30 ---
We used to change the mode to CC from CCFP but now we don't.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18420
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-11
00:31 ---
This is the rtl we used to produce:
(insn 144 69 75 8 (set (reg:CC 75 cr7)
(reg:CC 30 r30 [125])) 336 {*movcc_internal1} (nil)
(nil)) -- this the insn which we are messing up now.
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-11
00:34 ---
Found the patch which caused the problem:
* simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
has failed when passed a hard register.
--
What|Removed
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-11
00:47 ---
This patch fixes it:
Index: simplify-rtx.c
===
RCS file: /cvs/gcc/gcc/gcc/simplify-rtx.c,v
retrieving revision 1.207
diff -u -p -r1.207
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-11
01:04 ---
Even though this patch fixes it, it is not the right fix as simplify_subreg
should just return a change in
the mode rather than return null.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18420
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-11
01:49 ---
The problem is that the register is r30 (which is the FRAME_POINTER_REGNUM) and
reload is not
complete at this point, maybe this is not the correct check.
((reload_completed !frame_pointer_needed)
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-11
02:04 ---
Jan you added that code to simplify_subreg but I could not figure out why it
was really added except
that it effected x86_64 (when bootstrapped with -fomit-frame-pointer). Note in
this case the mode the
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-11
02:10 ---
The reason why we are not using r31 at least on darwin is because that is the
PIC register.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18420
--- Additional Comments From wilson at gcc dot gnu dot org 2004-11-11
05:19 ---
This looks like the same problem as 18294 which is an ia64-hpux bootstrap
failure. In that PR, I suggested that simplify_gen_subreg should just create
the subreg for a hard register when simplify_subreg
22 matches
Mail list logo