On Fri, Mar 13, 2015 at 4:28 PM, Tom de Vries <tom_devr...@mentor.com> wrote:
> 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));

Um - this now picks a random function which may be one with
an optimize or target attribute associated to it.

Richard.

> ...
>
> This was discussed here:
> https://gcc.gnu.org/ml/gcc-patches/2011-06/msg00856.html
>
> Thanks,
> - Tom

Reply via email to