This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: c/7871: ICE on legal code, global register variables problems


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;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]