re PR tree-optimization/42027 (Performance regression in convolution loop optimization)

PR tree-optimization/42027
	* dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to
	TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of
	falling through.

From-SVN: r155196
This commit is contained in:
Michael Matz 2009-12-13 21:51:34 +00:00 committed by Michael Matz
parent 83613dbea0
commit c3223bafb1
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2009-12-13 Michael Matz <matz@suse.de>
PR tree-optimization/42027
* dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to
TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of
falling through.
2009-12-13 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
PR target/23726

View File

@ -458,6 +458,7 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label)
case LTGT_EXPR:
case TRUTH_ANDIF_EXPR:
case TRUTH_ORIF_EXPR:
other_code:
do_jump_1 (code, TREE_OPERAND (exp, 0), TREE_OPERAND (exp, 1),
if_false_label, if_true_label);
break;
@ -547,6 +548,8 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label)
false) >= 4
|| TREE_SIDE_EFFECTS (TREE_OPERAND (exp, 1)))
goto normal;
code = TRUTH_ANDIF_EXPR;
goto other_code;
case BIT_IOR_EXPR:
case TRUTH_OR_EXPR:
@ -556,6 +559,8 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label)
if (BRANCH_COST (optimize_insn_for_speed_p (), false)>= 4
|| TREE_SIDE_EFFECTS (TREE_OPERAND (exp, 1)))
goto normal;
code = TRUTH_ORIF_EXPR;
goto other_code;
/* Fall through and generate the normal code. */
default: