aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fold-const.cc')
-rw-r--r--gcc/fold-const.cc25
1 files changed, 22 insertions, 3 deletions
diff --git a/gcc/fold-const.cc b/gcc/fold-const.cc
index 35fcf50..4749257 100644
--- a/gcc/fold-const.cc
+++ b/gcc/fold-const.cc
@@ -395,10 +395,14 @@ negate_mathfn_p (combined_fn fn)
CASE_CFN_ASIN_FN:
CASE_CFN_ASINH:
CASE_CFN_ASINH_FN:
+ CASE_CFN_ASINPI:
+ CASE_CFN_ASINPI_FN:
CASE_CFN_ATAN:
CASE_CFN_ATAN_FN:
CASE_CFN_ATANH:
CASE_CFN_ATANH_FN:
+ CASE_CFN_ATANPI:
+ CASE_CFN_ATANPI_FN:
CASE_CFN_CASIN:
CASE_CFN_CASIN_FN:
CASE_CFN_CASINH:
@@ -432,10 +436,14 @@ negate_mathfn_p (combined_fn fn)
CASE_CFN_SIN_FN:
CASE_CFN_SINH:
CASE_CFN_SINH_FN:
+ CASE_CFN_SINPI:
+ CASE_CFN_SINPI_FN:
CASE_CFN_TAN:
CASE_CFN_TAN_FN:
CASE_CFN_TANH:
CASE_CFN_TANH_FN:
+ CASE_CFN_TANPI:
+ CASE_CFN_TANPI_FN:
CASE_CFN_TRUNC:
CASE_CFN_TRUNC_FN:
return true;
@@ -5085,6 +5093,11 @@ simple_operand_p (const_tree exp)
#pragma weak, etc). */
&& ! TREE_PUBLIC (exp)
&& ! DECL_EXTERNAL (exp)
+ /* DECL_VALUE_EXPR will expand to something non-simple. */
+ && ! ((VAR_P (exp)
+ || TREE_CODE (exp) == PARM_DECL
+ || TREE_CODE (exp) == RESULT_DECL)
+ && DECL_HAS_VALUE_EXPR_P (exp))
/* Weakrefs are not safe to be read, since they can be NULL.
They are !TREE_PUBLIC && !DECL_EXTERNAL but still
have DECL_WEAK flag set. */
@@ -7246,10 +7259,10 @@ tree_swap_operands_p (const_tree arg0, const_tree arg1)
if (TREE_CONSTANT (arg0))
return true;
- /* Put invariant address in arg1. */
- if (is_gimple_invariant_address (arg1))
+ /* Put addresses in arg1. */
+ if (TREE_CODE (arg1) == ADDR_EXPR)
return false;
- if (is_gimple_invariant_address (arg0))
+ if (TREE_CODE (arg0) == ADDR_EXPR)
return true;
/* It is preferable to swap two SSA_NAME to ensure a canonical form
@@ -14957,6 +14970,8 @@ tree_call_nonnegative_warnv_p (tree type, combined_fn fn, tree arg0, tree arg1,
CASE_CFN_ACOS_FN:
CASE_CFN_ACOSH:
CASE_CFN_ACOSH_FN:
+ CASE_CFN_ACOSPI:
+ CASE_CFN_ACOSPI_FN:
CASE_CFN_CABS:
CASE_CFN_CABS_FN:
CASE_CFN_COSH:
@@ -15001,10 +15016,14 @@ tree_call_nonnegative_warnv_p (tree type, combined_fn fn, tree arg0, tree arg1,
CASE_CFN_ASINH:
CASE_CFN_ASINH_FN:
+ CASE_CFN_ASINPI:
+ CASE_CFN_ASINPI_FN:
CASE_CFN_ATAN:
CASE_CFN_ATAN_FN:
CASE_CFN_ATANH:
CASE_CFN_ATANH_FN:
+ CASE_CFN_ATANPI:
+ CASE_CFN_ATANPI_FN:
CASE_CFN_CBRT:
CASE_CFN_CBRT_FN:
CASE_CFN_CEIL: