This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch] Fix for PR middle-end/38059, Compile time regression
- From: "Richard Guenther" <richard dot guenther at gmail dot com>
- To: sje at cup dot hp dot com
- Cc: "Diego Novillo" <dnovillo at google dot com>, "Jeff Law" <law at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Tue, 2 Dec 2008 11:12:05 +0100
- Subject: Re: [Patch] Fix for PR middle-end/38059, Compile time regression
- References: <200811211825.mALIP2O04820@lucas.cup.hp.com> <4927353B.1000304@redhat.com> <b798aad50811211436r121b6c81j146fac5915e80a17@mail.gmail.com> <1228172236.4529.44.camel@hpsje.cup.hp.com>
On Mon, Dec 1, 2008 at 11:57 PM, Steve Ellcey <sje@cup.hp.com> wrote:
>
> On Fri, 2008-11-21 at 17:36 -0500, Diego Novillo wrote:
>> On Fri, Nov 21, 2008 at 17:24, Jeff Law <law@redhat.com> wrote:
>>
>> > I'll support removal if someone goes through and
>> > verifies removal of the pass has little effect on a reasonable body of code
>> > (say gcc itself).
>>
>> Agreed. This pass is pretty uninteresting nowadays. We were tempted
>> to take it out when working on tuples, but the changes we had were
>> already too invasive. I also support tossing this one out.
>>
>>
>> Diego.
>
> I tried removing the 'useless' pass (remove_useless_stmts) and am
> running into an odd situation I don't quite understand. If I change
> passes.c to remove the line:
>
> NEXT_PASS (pass_remove_useless_stmts);
>
> Then the compiler dies with:
>
> x.c:6: internal compiler error: in verify_curr_properties, at
> passes.c:1085
>
> It looks like this is dying in the lower_cfg pass because the compiler
> expects PROP_gimple_any to be set but finds that it isn't. However the
> useless pass doesn't claim to provide this property, indeed it requires
> it just like the lower_cfg pass does. So I don't understand how
> removing the useless pass is messing this up. Does someone understand
> what is happening here?
PROP_gimple_any is supposed to be set at the beginning of
all_lowering_passes. See passes.c
register_dump_files (all_lowering_passes, PROP_gimple_any);
all_lowering_passes->todo_flags_start |= TODO_set_props;
with TODO_set_props it sets all required properties. Try setting
PROP_gimple_any requirement in pass_mudflap_1 (and/or the
following passes if disabled passes do not do this magic).
Richard.