This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs


2011/10/11 Michael Matz <matz@suse.de>:
> Hi,
>
> On Tue, 11 Oct 2011, Kai Tietz wrote:
>
>> > Better make it a separate function the first tests your new
>> > conditions, and then calls simple_operand_p.
>>
>> Well, either I make it a new function and call it instead of
>> simple_operand_p,
>
> That's what I meant, yes.
>
>> >> @@ -5149,13 +5176,6 @@ fold_truthop (location_t loc, enum tree_
>> >> ? ? ? ? ? ? ? ? ? ? ? ? ?build2 (BIT_IOR_EXPR, TREE_TYPE (ll_arg),
>> >> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ll_arg, rl_arg),
>> >> ? ? ? ? ? ? ? ? ? ? ? ? ?build_int_cst (TREE_TYPE (ll_arg), 0));
>> >> -
>> >> - ? ? ?if (LOGICAL_OP_NON_SHORT_CIRCUIT)
>> >> - ? ? {
>> >> - ? ? ? if (code != orig_code || lhs != orig_lhs || rhs != orig_rhs)
>> >> - ? ? ? ? return build2_loc (loc, code, truth_type, lhs, rhs);
>> >> - ? ? ? return NULL_TREE;
>> >> - ? ? }
>> >
>> > Why do you remove this hunk? ?Shouldn't you instead move the hunk you
>> > added to fold_truth_andor() here. ?I realize this needs some TLC to
>> > fold_truth_andor_1, because right now it early-outs for non-comparisons,
>> > but it seems the better place. ?I.e. somehow move the below code into the
>> > above branch, with the associated diddling on fold_truth_andor_1 that it
>> > gets called.
>>
>> This hunk is removed, as it is vain to do here.
>
> There is a fallthrough now, that wasn't there before. ?I don't know if
> it's harmless, I just wanted to mention it.

It is.  Before we changed expression here and recurse here with the
non-IF AND/OR expression later.  So there is no need to do this
recursion.

>> Btw richi asked for it, and I agree that new TRUTH-AND/OR packing is
>> better done at a single place in fold_truth_andor only.
>
> As fold_truthop is called twice by fold_truth_andor, the latter might
> indeed be the better place.
>
>
> Ciao,
> Michael.

Kai


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]