mirror of git://gcc.gnu.org/git/gcc.git
re PR tree-optimization/41654 (ICE: in gimple_cond_get_ops_from_tree, at gimple.c:417)
2009-10-10 Richard Guenther <rguenther@suse.de> PR tree-optimization/41654 * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize a cond expr before calling gimple_cond_set_condition_from_tree. (ifcombine_iforif): Likewise. * gfortran.fortran-torture/compile/pr41654.f90: New testcase. From-SVN: r152620
This commit is contained in:
parent
fdfea49e45
commit
740bb6ad8f
|
@ -1,3 +1,10 @@
|
||||||
|
2009-10-10 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/41654
|
||||||
|
* tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize
|
||||||
|
a cond expr before calling gimple_cond_set_condition_from_tree.
|
||||||
|
(ifcombine_iforif): Likewise.
|
||||||
|
|
||||||
2009-10-09 Ian Lance Taylor <iant@google.com>
|
2009-10-09 Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
* configure.ac: Use AC_SEARCH_LIBS to find dlopen.
|
* configure.ac: Use AC_SEARCH_LIBS to find dlopen.
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2009-10-10 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/41654
|
||||||
|
* gfortran.fortran-torture/compile/pr41654.f90: New testcase.
|
||||||
|
|
||||||
2009-10-09 Jason Merrill <jason@redhat.com>
|
2009-10-09 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
* g++.dg/cpp/ucn-1.C: New.
|
* g++.dg/cpp/ucn-1.C: New.
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
SUBROUTINE SCANBUFR (LBUFRIGNOREERROR, LBOPRPRO, LLSPLIT)
|
||||||
|
LOGICAL :: LBUFRIGNOREERROR, LBOPRPRO, LLSPLIT
|
||||||
|
INTEGER :: IBOTYP, IBSTYP
|
||||||
|
IF ((IBOTYP.eq.0).AND.(IBSTYP.eq.1)) GO TO 251
|
||||||
|
IF ((IBOTYP.eq.0).AND.(IBSTYP.eq.3)) GO TO 251
|
||||||
|
IF(LBUFRIGNOREERROR) THEN
|
||||||
|
goto 360
|
||||||
|
ENDIF
|
||||||
|
251 CONTINUE
|
||||||
|
IF(LBOPRPRO.AND.LLSPLIT) THEN
|
||||||
|
CALL OBSCREEN
|
||||||
|
ENDIF
|
||||||
|
360 CONTINUE
|
||||||
|
END SUBROUTINE SCANBUFR
|
||||||
|
|
|
@ -340,6 +340,9 @@ ifcombine_ifandif (basic_block inner_cond_bb, basic_block outer_cond_bb)
|
||||||
t2 = force_gimple_operand_gsi (&gsi, t2, true, NULL_TREE,
|
t2 = force_gimple_operand_gsi (&gsi, t2, true, NULL_TREE,
|
||||||
true, GSI_SAME_STMT);
|
true, GSI_SAME_STMT);
|
||||||
t = fold_build2 (EQ_EXPR, boolean_type_node, t2, t);
|
t = fold_build2 (EQ_EXPR, boolean_type_node, t2, t);
|
||||||
|
t = canonicalize_cond_expr_cond (t);
|
||||||
|
if (!t)
|
||||||
|
return false;
|
||||||
gimple_cond_set_condition_from_tree (inner_cond, t);
|
gimple_cond_set_condition_from_tree (inner_cond, t);
|
||||||
update_stmt (inner_cond);
|
update_stmt (inner_cond);
|
||||||
|
|
||||||
|
@ -488,6 +491,9 @@ ifcombine_iforif (basic_block inner_cond_bb, basic_block outer_cond_bb)
|
||||||
true, GSI_SAME_STMT);
|
true, GSI_SAME_STMT);
|
||||||
t = fold_build2 (NE_EXPR, boolean_type_node, t,
|
t = fold_build2 (NE_EXPR, boolean_type_node, t,
|
||||||
build_int_cst (TREE_TYPE (t), 0));
|
build_int_cst (TREE_TYPE (t), 0));
|
||||||
|
t = canonicalize_cond_expr_cond (t);
|
||||||
|
if (!t)
|
||||||
|
return false;
|
||||||
gimple_cond_set_condition_from_tree (inner_cond, t);
|
gimple_cond_set_condition_from_tree (inner_cond, t);
|
||||||
update_stmt (inner_cond);
|
update_stmt (inner_cond);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue