Using SSA
Daniel Berlin
dberlin@dberlin.org
Thu Mar 22 13:17:00 GMT 2007
On 3/22/07, Alexander Lamaison <awl03@doc.ic.ac.uk> wrote:
> > > The tree_opt_pass for my pass has PROP_ssa set in the
> > properties_required
> > > field. Is this all I need to do?
> >
> > You need to put your pass after pass_build_ssa. Setting PROP_ssa does
> > not build SSA itself, but it will cause an assertion failure if the
> > pass is run while SSA is (not yet) available.
> >
> > Paolo
>
> I think (if I'm correctly interpreting the list in passes.c) it is. It's
> right after pass_warn_function_noreturn, just before pass_mudflap_2. Is
> this right? I don't get any assertion about SSA not being available.
>
This is a bug then, btw.
You should file it.
It should have asserted that PROP_ssa was not available, because it
was destroyed by del_ssa.
In particular, this code:
#ifdef ENABLE_CHECKING
do_per_function (verify_curr_properties,
(void *)(size_t)pass->properties_required);
#endif
should have triggered.
(I have long believed that our properties mechanism should be used as
a mechanism to decide what analysis needs to be run, not a static
assertion mechanism, and should recompute what is necessary on demand,
but that is not currently the case).
More information about the Gcc
mailing list