c/7871: ICE on legal code, global register variables problems
Richard Zidlicky
rz@linux-m68k.org
Tue Aug 19 22:03:00 GMT 2003
On Mon, Mar 10, 2003 at 12:16:23AM -0500, Jim Wilson wrote:
I have tried the patch below again with 3.3.1 and the results are
very similar as reported earlier. My old hack still works (for my app
at least), this patch doesn't. A quick look suggests my earlier
analysis of the differences in the generated code is still valid.
Is there any point in looking at the asm output in more detail?
Richard
> 2003-03-10 James E Wilson <wilson@tuliptree.org>
>
> * flow.c (mark_set_1): Handle global_regs like the frame pointer.
>
> Index: flow.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/flow.c,v
> retrieving revision 1.549
> diff -p -r1.549 flow.c
> *** flow.c 28 Feb 2003 10:11:47 -0000 1.549
> --- flow.c 10 Mar 2003 05:05:08 -0000
> *************** mark_set_1 (pbi, code, reg, cond, insn,
> *** 2709,2714 ****
> --- 2709,2715 ----
> #if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
> && ! (regno_first == ARG_POINTER_REGNUM && fixed_regs[regno_first])
> #endif
> + && ! (regno_first < FIRST_PSEUDO_REGISTER && global_regs[regno_first])
> )
> {
> int some_was_live = 0, some_was_dead = 0;
More information about the Gcc-bugs
mailing list