This is the mail archive of the gcc@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: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED



On Wednesday, April 30, 2003, at 03:31 PM, Herman ten Brugge wrote:


Hello,

I found a problem with the -fnew-ra option of the compiler. I analysed
the problem and found that the macro HARD_REGNO_CALL_PART_CLOBBERED
is not used by the new register allocator.

It's not a problem in new-ra (i've dealt with exactly this problem in the past month, i never got around to sending a patch to the mainline).
It's in df.c.


All register info used from new-regalloc is coming from df.c, that's where you need to add the macro.

Right somewhere in this code:
          if (df->flags & DF_HARD_REGS)
            {
              /* Calls may also reference any of the global registers,
                 so they are recorded as used.  */
              for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
                if (global_regs[i])
                  {
                    x = df_reg_use_gen (i);
                    df_uses_record (df, &SET_DEST (x),
                                    DF_REF_REG_USE, bb, insn, 0);
                  }
            }


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