On 13-03-15 13:36, Richard Biener wrote:
On Fri, Mar 13, 2015 at 1:07 PM, Jakub Jelinek <ja...@redhat.com> wrote:
On Fri, Mar 13, 2015 at 01:04:57PM +0100, Richard Biener wrote:
Not really (I don't like -fdump-passes ...), but we need to make sure
that -fdump-passes doesn't crash (because it runs very early and
with cfun == NULL I think)
If it runs with cfun == NULL, then supposedly the gates that are dependent
on current function should for -fdump-passes purposes also return true
if cfun == NULL (well, of course do all the unconditional checks).
Though of course, with optimize/target attributes this is harder, as
different functions can use different options.
Yes, one reason why I think -fdump-passes is just broken implementation-wise.
Atm fdump-passes doesn't run with cfun == NULL.
From pass_manager::dump_passes:
...
FOR_EACH_FUNCTION (n)
if (DECL_STRUCT_FUNCTION (n->decl))
{
node = n;
break;
}
if (!node)
return;
push_cfun (DECL_STRUCT_FUNCTION (node->decl));
...
This was discussed here:
https://gcc.gnu.org/ml/gcc-patches/2011-06/msg00856.html
Thanks,
- Tom