On 3/22/07, Alexander Lamaison <[EMAIL PROTECTED]> 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).