Hello,

do you have an opinion on this patch (available here:
http://gcc.gnu.org/ml/gcc-patches/2012-07/msg01352.html
) ?

Or should we go back to my old patch, or Andrew's patch?

On Thu, 26 Jul 2012, Marc Glisse wrote:

Hello,

here is a new version of the ifcombine patch, which handles Andrew's examples (though only with -O2 for one of them, same_phi_args_p returns false otherwise).

Note that the new patch never calls maybe_fold_or_comparisons, only maybe_fold_and_comparisons. It would be possible to call maybe_fold_or_comparisons, when maybe_fold_and_comparisons fails, but I don't know if there are optimizations that one does and not the other, except for the odd trapping-math case.

Bootstrap and testsuite are fine.

2012-07-26 Marc Glisse <marc.gli...@inria.fr>

gcc/
        PR tree-optimization/51938
        PR tree-optimization/52005
        * tree-ssa-ifcombine.c (ifcombine_ifandif): New parameters for
        inverted conditions.
        (ifcombine_iforif): Remove, merge code into ifcombine_ifandif.
        (tree_ssa_ifcombine_bb): Update calls to the above. Detect !a&&b
        and !a||b patterns.


gcc/testsuite/
        PR tree-optimization/51938
        PR tree-optimization/52005
        * gcc.dg/tree-ssa/ssa-ifcombine-8.c: New testcase.
        * gcc.dg/tree-ssa/ssa-ifcombine-9.c: Likewise.
        * gcc.dg/tree-ssa/ssa-ifcombine-10.c: Likewise.
        * gcc.dg/tree-ssa/ssa-ifcombine-11.c: Likewise.

--
Marc Glisse

Reply via email to