diff options
author | Ian Lance Taylor <iant@google.com> | 2007-03-02 20:09:31 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2007-03-02 20:09:31 +0000 |
commit | 12df8a7eb6ef9965506dfa101aa4d0e6698be159 (patch) | |
tree | 08d9af36c26e8904e6735ae169f37837147cbdc7 /gcc/tree-ssa-propagate.c | |
parent | 386e9d408b56891b27b419e89f67320ff36f71aa (diff) | |
download | gcc-12df8a7eb6ef9965506dfa101aa4d0e6698be159.zip gcc-12df8a7eb6ef9965506dfa101aa4d0e6698be159.tar.gz gcc-12df8a7eb6ef9965506dfa101aa4d0e6698be159.tar.bz2 |
Used signed infinities in VRP.
* tree-vrp.c (uses_overflow_infinity): New static function.
(supports_overflow_infinity): New static function.
(make_overflow_infinity): New static function.
(negative_overflow_infinity): New static function.
(positive_overflow_infinity): New static function.
(is_negative_overflow_infinity): New static function.
(is_positive_overflow_infinity): New static function.
(is_overflow_infinity): New static function.
(overflow_infinity_range_p): New static function.
(compare_values_warnv): New function split out of compare_values.
(compare_value): Call it.
(set_value_range_to_nonnegative): Add overflow_infinity
parameter. Change caller.
(vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
Change callers.
(vrp_expr_computes_nonzero): Likewise.
(compare_ranges, compare_range_with_value): Likewise.
(compare_name_with_value, compare_names): Likewise.
(vrp_evaluate_conditional): Likewise.
(set_value_range): Handle infinity
(vrp_operand_equal_p, operand_less_p): Likewise.
(extract_range_from_assert): Likewise.
(vrp_int_const_binop): Likewise.
(extract_range_from_binary_expr): Likewise.
(extract_range_from_unary_expr): Likewise.
(extract_range_from_comparison): Likewise.
(extract_range_from_expr): Likewise.
(dump_value_range): Likewise.
(vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
(test_for_singularity): Likewise.
(vrp_int_const_binop): Remove inline qualifier.
(adjust_range_with_scev): Add comment.
* tree-flow.h (vrp_evaluate_conditional): Update declaration.
From-SVN: r122487
Diffstat (limited to 'gcc/tree-ssa-propagate.c')
-rw-r--r-- | gcc/tree-ssa-propagate.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-ssa-propagate.c b/gcc/tree-ssa-propagate.c index 1bfb56c..3cc3239 100644 --- a/gcc/tree-ssa-propagate.c +++ b/gcc/tree-ssa-propagate.c @@ -1100,6 +1100,7 @@ fold_predicate_in (tree stmt) tree *pred_p = NULL; bool modify_stmt_p = false; tree val; + bool sop; if (TREE_CODE (stmt) == GIMPLE_MODIFY_STMT && COMPARISON_CLASS_P (GIMPLE_STMT_OPERAND (stmt, 1))) @@ -1112,7 +1113,8 @@ fold_predicate_in (tree stmt) else return false; - val = vrp_evaluate_conditional (*pred_p, true); + sop = false; + val = vrp_evaluate_conditional (*pred_p, true, &sop); if (val) { if (modify_stmt_p) |