From: Daniel Berlin Date: Sun, 1 Jul 2007 02:20:06 +0000 (+0000) Subject: tree-ssa-pre.c (is_exception_related): New function X-Git-Tag: releases/gcc-4.3.0~4213 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b941a8ae18d35d1a87f432f8e4fbad71398aa6f8;p=thirdparty%2Fgcc.git tree-ssa-pre.c (is_exception_related): New function 2007-06-30 Daniel Berlin * tree-ssa-pre.c (is_exception_related): New function (can_value_number_operation): Use it. From-SVN: r126162 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c8f71eeb1a64..7e576becf2f3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -24,6 +24,11 @@ * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration. * pa.c (hppa_can_use_return_insn_p): Delete function. Include "df.h". +2007-06-30 Daniel Berlin + + * tree-ssa-pre.c (is_exception_related): New function + (can_value_number_operation): Use it. + 2007-06-30 Daniel Berlin Fix PR tree-optimization/32540 diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 966d881f8f81..b971de4498aa 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -2122,13 +2122,23 @@ can_value_number_call (tree stmt) return false; } +/* Return true if OP is an exception handler related operation, such as + FILTER_EXPRor EXC_PTR_EXPR. */ + +static bool +is_exception_related (tree op) +{ + return TREE_CODE (op) == FILTER_EXPR || TREE_CODE (op) == EXC_PTR_EXPR; +} + /* Return true if OP is a tree which we can perform value numbering on. */ static bool can_value_number_operation (tree op) { - return UNARY_CLASS_P (op) + return (UNARY_CLASS_P (op) + && !is_exception_related (TREE_OPERAND (op, 0))) || BINARY_CLASS_P (op) || COMPARISON_CLASS_P (op) || REFERENCE_CLASS_P (op)