mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-13 08:00:40 +08:00
re PR tree-optimization/17624 (ICE: SSA corruption (another one))
2004-09-24 Andrew Pinski <pinskia@physics.uc.edu> PR tree-opt/17624 * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Reject if any of the operands occur in an abnormal PHI. From-SVN: r88032
This commit is contained in:
parent
7e53ab6605
commit
54e075fe1e
@ -1,3 +1,9 @@
|
||||
2004-09-24 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
PR tree-opt/17624
|
||||
* tree-ssa-forwprop.c (record_single_argument_cond_exprs):
|
||||
Reject if any of the operands occur in an abnormal PHI.
|
||||
|
||||
2004-09-24 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* tree-ssa-dom.c (record_range): Fix violation of strict aliasing
|
||||
|
@ -212,6 +212,11 @@ record_single_argument_cond_exprs (varray_type cond_worklist,
|
||||
|| !CONSTANT_CLASS_P (op1)
|
||||
|| !INTEGRAL_TYPE_P (TREE_TYPE (op1)))
|
||||
continue;
|
||||
|
||||
/* Don't propagate if the first operand occurs in
|
||||
an abnormal PHI. */
|
||||
if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (op0))
|
||||
continue;
|
||||
}
|
||||
|
||||
/* These cases require comparisons of a naked SSA_NAME or
|
||||
@ -235,6 +240,18 @@ record_single_argument_cond_exprs (varray_type cond_worklist,
|
||||
|| (TREE_CODE (op1) != SSA_NAME
|
||||
&& !is_gimple_min_invariant (op1)))
|
||||
continue;
|
||||
|
||||
/* Don't propagate if the first operand occurs in
|
||||
an abnormal PHI. */
|
||||
if (TREE_CODE (op0) == SSA_NAME
|
||||
&& SSA_NAME_OCCURS_IN_ABNORMAL_PHI (op0))
|
||||
continue;
|
||||
|
||||
/* Don't propagate if the second operand occurs in
|
||||
an abnormal PHI. */
|
||||
if (TREE_CODE (op1) == SSA_NAME
|
||||
&& SSA_NAME_OCCURS_IN_ABNORMAL_PHI (op1))
|
||||
continue;
|
||||
}
|
||||
|
||||
/* If TEST_VAR is set from a TRUTH_NOT_EXPR, then it
|
||||
@ -247,6 +264,12 @@ record_single_argument_cond_exprs (varray_type cond_worklist,
|
||||
if (TREE_CODE (def_rhs) != SSA_NAME
|
||||
&& !is_gimple_min_invariant (def_rhs))
|
||||
continue;
|
||||
|
||||
/* Don't propagate if the operand occurs in
|
||||
an abnormal PHI. */
|
||||
if (TREE_CODE (def_rhs) == SSA_NAME
|
||||
&& SSA_NAME_OCCURS_IN_ABNORMAL_PHI (def_rhs))
|
||||
continue;
|
||||
}
|
||||
|
||||
/* If TEST_VAR was set from a cast of an integer type
|
||||
@ -268,6 +291,13 @@ record_single_argument_cond_exprs (varray_type cond_worklist,
|
||||
;
|
||||
else
|
||||
continue;
|
||||
|
||||
/* Don't propagate if the operand occurs in
|
||||
an abnormal PHI. */
|
||||
if (TREE_CODE (TREE_OPERAND (def_rhs, 0)) == SSA_NAME
|
||||
&& SSA_NAME_OCCURS_IN_ABNORMAL_PHI (TREE_OPERAND
|
||||
(def_rhs, 0)))
|
||||
continue;
|
||||
}
|
||||
else
|
||||
continue;
|
||||
|
Loading…
x
Reference in New Issue
Block a user