This is the mail archive of the gcc-patches@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-regalloc-branch]: (try_recolor_web) reset colors bugfix


Hi,

On 1 Mar 2002, Denis Chertykov wrote:

> > Out of curiousity: did it make a difference for a certain testcase you
> > have?
>
> Yes. I can't compile moddi3 from libgcc.c:
>
> [... explanation what went wrong ...]

Thanks for the clarification.  It indeed was a real bug to not restore all
colors in case of failure.

> About pre-reload:
> I have ready version of pre_reload_collect - function which collect
> defs/uses for all insns. This defs/uses based on information from
> insns constrains. Defs/uses from constrains differs from defs/uses
> based on rtl (df defs/uses).
> Differences are:
> 1. All registers with mode class MODE_CC;
> 2. Asm insns with clobbers added by MD_ASM_CLOBBERS;
> 3. Call_insns. You already wrote about this;
> 3a. Return value from call. IE (set (reg ax) (call ....));
> 4. Insns like: (clobber reg:DI NNN) or (use (reg:DI NNN));
> 5. df.c builds (HARD_REGNO_NREGS (regno,mode)) defs/uses for hardregs.

But for the "normal" uses/defs of pseudos (i.e. simple
 (set (reg:M x) (op (reg:M a) (reg:M b))) ) you have distinguished
defs/uses, right?  In which way are the above cases represented
differently from those normal refs (I think I've an idea for case 3.  just
a regset of all clobbered hardregs for the whole insn e.g.).  What's the
rationale for representing all things having MODE_CC different?

> What will we do with differences ?

This depends on the answers to above questions ;-)  I would guess, we
would store also rtx* pointers to the real locations of the pseudo-regs in
question, and simply rework ra.c to use those new refs instead of df.c's.


Ciao,
Michael.


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