[PATCH]: update to df for mainline.

Bernd Schmidt bernds_cb1@t-online.de
Tue May 9 13:48:00 GMT 2006


Dealing with reginfo.diff now...

> +   the aggrigate is still needed to service the REG_DEAD and

"aggregate"

> -  struct df_ri_problem_data *problem_data =
> -    (struct df_ri_problem_data *) dflow->problem_data;

I think the "=" should be on the second line.

> +  struct df * df = dflow->df;

"df *df"

> +  return regstack_completed
> +    && IN_RANGE (regno, FIRST_STACK_REG, LAST_STACK_REG);

Parenthesize for nicer formatting.  Move #ifdefs into the function.

> +	  if (flags & DF_RI_LIFE)
> +	    if (df_ignore_stack_reg (REGNO (XEXP (link, 0))))
> +	      REG_N_DEATHS (REGNO (XEXP (link, 0)))++;

Add break here for clarity.

> +  if (all_dead)
> +    {
> +      struct df_link *regs = mws->regs;
> +      rtx note = alloc_EXPR_LIST (REG_UNUSED, *DF_REF_LOC (regs->ref), 
> +				  REG_NOTES (insn));

That probably works, but it looks as if it were using an individual reg 
rather than the whole.  Maybe this could be written differently.

> +      bitmap_set_bit (do_not_gen, regno);

Only the first?  Probably ok given what df_set_dead_notes_for_mw does.

Lots of code shared between df_set_{dead,unused}_notes_for_mw.

> +  else if ( (!(DF_REF_FLAGS (def) & DF_REF_MW_HARDREG))

Kill the space.

> +      rtx note =
> +	alloc_EXPR_LIST (REG_UNUSED, reg, REG_NOTES (insn));

Formatting; see above.

> +	  REG_N_DEATHS (dregno) ++;

Kill the space.

> +  /* Kill this register if it is not a subreg store.  */
> +  if (!(DF_REF_FLAGS (def) & DF_REF_PARTIAL))
> +    bitmap_clear_bit (live, dregno);

Looks like this depends on another part.  I have to admit that I'm not 
convinced yet by the subreg handling in DF as a whole.  A normal 
(non-multiword non-strict-low) subreg store _does_ kill the whole reg.

> +	  if ((dflow->flags & DF_RI_LIFE) && (uregno >= FIRST_PSEUDO_REGISTER))

Some parens unnecessary.  Elsewhere too.

Do you think we need this patch in stage3, or can it wait until 4.3 stage1?


Bernd



More information about the Gcc-patches mailing list