We'd call gen_shrink_wrap_conditions for functions that it can't handle
but edom_only_function can.
Tested on x86_64-linux-gnu.
gcc/
PR tree-optimization/68474
* tree-call-cdce.c (use_internal_fn): Protect call to
gen_shrink_wrap_conditions.
gcc/testsuite/
PR tree-optimization/68474
* gcc.dg/pr68474.c: New test.
From-SVN: r231115
+2015-12-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR tree-optimization/68474
+ * tree-call-cdce.c (use_internal_fn): Protect call to
+ gen_shrink_wrap_conditions.
+
2015-12-01 Christian Bruel <christian.bruel@st.com>
PR target/68617
+2015-12-01 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR tree-optimization/68474
+ * gcc.dg/pr68474.c: New test.
+
2015-12-01 Christian Bruel <christian.bruel@st.com>
PR target/68617
--- /dev/null
+/* { dg-options "-O -funsafe-math-optimizations" } */
+
+long double
+foo (long double d1, long double d2)
+{
+ return d1 || __builtin_significandl (d2);
+}
{
unsigned nconds = 0;
auto_vec<gimple *, 12> conds;
- gen_shrink_wrap_conditions (call, conds, &nconds);
+ if (can_test_argument_range (call))
+ gen_shrink_wrap_conditions (call, conds, &nconds);
if (nconds == 0 && !edom_only_function (call))
return false;