[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