On Sun, May 13, 2012 at 7:50 PM, Eric Botcazou <ebotca...@adacore.com> wrote:
>> I get a bootstrap failure on x86 (verify_flow_info failed) with it.
>
> It's actually pre-existing: it's PRE value-numbering a call that can make an
> abnormal goto, hence the CFG mess in the end.  The call is ECF_PURE but also
> ECF_LOOPING_CONST_OR_PURE, so gimple_has_side_effects returns true and, in
> turn, call_can_make_abnormal_goto .  The bug is in can_value_number_call.
>
> I can come up with two solutions:
>  - testing ECF_LOOPING_CONST_OR_PURE as well, like gimple_has_side_effects, or
>  - calling call_can_make_abnormal_goto explicitly.
>
> The attached patch implements the former.  With it, I could bootstrap and test
> the stor-layout.c patch on our internal testsuite.
>
> What do you think?

I'd say simply test gimple_has_side_effects instead.

Richard.

>
>        * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
>        in a PLUS_EXPR byte offset.
>
>        * tree-ssa-pre.c (can_value_number_call): Return false if the call
>        has the ECF_LOOPING_CONST_OR_PURE flag.
>
>
> --
> Eric Botcazou

Reply via email to