This is the mail archive of the
mailing list for the GCC project.
Re: [lto] remove rebuild_ssa_for_lto
On Mon, Dec 03, 2007 at 08:19:03PM -0500, Daniel Berlin wrote:
> On 12/3/07, Nathan Froyd <firstname.lastname@example.org> wrote:
> > This patch forges ahead with the plan I suggested Friday to remove the
> > current full rebuilding of SSA we do.
> This is, well, not right.
> 1. You should be running pass_referenced_vars, which will find all the
> referenced vars for you and add them. If it doesn't, it is buggy, and
> should be fixed.
It works fine; it worked prior to this. The checking for MTAGs is also
bogus; that remained in there from when I was playing with stuff
earlier. But what is the advantage to letting pass_referenced_vars do
this work rather than calling add_referenced_var where appropriate
beyond division of labor?
> > + /* Fill in properties we know hold for the rebuilt CFG. */
> > + cfun->curr_properties = PROP_ssa | PROP_alias;
> You can't have PROP_alias unless you have rebuild NMT's, SMT's, mtags,
> partitioning info, addresses_taken, call_clobbering, SFT's, etc.
> The passes LTO calls when it is done reading in should include
> pass_referenced_vars and have a TODO_may_alias on one of them (The
> first that normally does this is pass_create_structure_vars).
OK, so this bit is bogus too. Removing PROP_alias here doesn't hurt
anything. But why do we need to have TODO_may_alias immediately after
reading? pass_create_structure_vars is going to do that for us anyway
later in the pipeline. And AIUI, you can't have alias information
during IPA anyway.