[PATCH 1/2] Auto-generate maybe_fold_and/or_comparisons from match.pd

Richard Biener rguenther@suse.de
Mon Sep 9 13:55:00 GMT 2019


On Mon, 9 Sep 2019, Martin Liška wrote:

> On 9/9/19 3:42 PM, Richard Biener wrote:
> > There is no newly created GIMPLE?
> 
> Hm, I thought from the beginning that maybe_fold_comparisons_from_match_pd
> can come up with new temporary expressions that need to be inserted into
> GIMPLE stream? But that's probably handled in ifcombine with:
> 
> 	  t = force_gimple_operand_gsi_1 (&gsi, t, is_gimple_condexpr, NULL, true,
> 					  GSI_SAME_STMT);
> ?

No, that case is done when forcing short-circuiting when there was no
simplification.  When there was a simplification we do

      if (result_inv)
        t = fold_build1 (TRUTH_NOT_EXPR, TREE_TYPE (t), t);
      t = canonicalize_cond_expr_cond (t);
      if (!t)
        return false;

so when it is not a condition suitable for direct replacement into

      gimple_cond_set_condition_from_tree (inner_cond, t);

we fail.

Richard.


More information about the Gcc-patches mailing list