Commit 00b8517d by Balaji V. Iyer Committed by Balaji V. Iyer

re PR c/57563 (Lots of Cilk+ failures on i686-linux)

Fix for PR c/57563
gcc/c/ChangeLog
+2013-06-10  Balaji V. Iyer  <balaji.v.iyer@intel.com>
+
+       * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
+       excessive precision expressions in function parameters.  Also removed
+       couple unwanted while statements.
+

gcc/testsuite/ChangeLog
+2013-06-10  Balaji V. Iyer  <balaji.v.iyer@intel.com>
+
+       PR c/57563
+       * c-c++-common/cilk-plus/AN/builtin_fn_mutating.c (main): Fixed a bug
+       in how we check __sec_reduce_mutating function's result.
+

From-SVN: r199925
parent 3b31a727
2013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
* c-array-notation.c (fix_builtin_array_notation_fn): Fully folded
excessive precision expressions in function parameters. Also removed
couple unwanted while statements.
2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com> 2013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com>
* c-array-notation.c (expand_array_notation_exprs): Added * c-array-notation.c (expand_array_notation_exprs): Added
......
...@@ -143,25 +143,18 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree *new_var) ...@@ -143,25 +143,18 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree *new_var)
|| an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MUTATING) || an_type == BUILT_IN_CILKPLUS_SEC_REDUCE_MUTATING)
{ {
call_fn = CALL_EXPR_ARG (an_builtin_fn, 2); call_fn = CALL_EXPR_ARG (an_builtin_fn, 2);
while (TREE_CODE (call_fn) == CONVERT_EXPR if (TREE_CODE (call_fn) == ADDR_EXPR)
|| TREE_CODE (call_fn) == NOP_EXPR)
call_fn = TREE_OPERAND (call_fn, 0); call_fn = TREE_OPERAND (call_fn, 0);
call_fn = TREE_OPERAND (call_fn, 0);
identity_value = CALL_EXPR_ARG (an_builtin_fn, 0); identity_value = CALL_EXPR_ARG (an_builtin_fn, 0);
while (TREE_CODE (identity_value) == CONVERT_EXPR
|| TREE_CODE (identity_value) == NOP_EXPR)
identity_value = TREE_OPERAND (identity_value, 0);
func_parm = CALL_EXPR_ARG (an_builtin_fn, 1); func_parm = CALL_EXPR_ARG (an_builtin_fn, 1);
} }
else else
func_parm = CALL_EXPR_ARG (an_builtin_fn, 0); func_parm = CALL_EXPR_ARG (an_builtin_fn, 0);
while (TREE_CODE (func_parm) == CONVERT_EXPR /* Fully fold any EXCESSIVE_PRECISION EXPR that can occur in the function
|| TREE_CODE (func_parm) == EXCESS_PRECISION_EXPR parameter. */
|| TREE_CODE (func_parm) == NOP_EXPR) func_parm = c_fully_fold (func_parm, false, NULL);
func_parm = TREE_OPERAND (func_parm, 0);
location = EXPR_LOCATION (an_builtin_fn); location = EXPR_LOCATION (an_builtin_fn);
if (!find_rank (location, an_builtin_fn, an_builtin_fn, true, &rank)) if (!find_rank (location, an_builtin_fn, an_builtin_fn, true, &rank))
......
2013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
PR c/57563
* c-c++-common/cilk-plus/AN/builtin_fn_mutating.c (main): Fixed a bug
in how we check __sec_reduce_mutating function's result.
2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com> 2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
Pat Haugen <pthaugen@us.ibm.com> Pat Haugen <pthaugen@us.ibm.com>
Peter Bergner <bergner@vnet.ibm.com> Peter Bergner <bergner@vnet.ibm.com>
......
...@@ -44,11 +44,11 @@ int main(void) ...@@ -44,11 +44,11 @@ int main(void)
max_value = array3[0] * array4[0]; max_value = array3[0] * array4[0];
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
if (array3[ii] * array4[ii] > max_value) { if (array3[ii] * array4[ii] > max_value) {
max_value = array3[ii] * array4[ii];
max_index = ii; max_index = ii;
} }
for (ii = 0; ii < 10; ii++)
my_func (&max_value, array3[ii] * array4[ii]);
#if HAVE_IO #if HAVE_IO
for (ii = 0; ii < 10; ii++) for (ii = 0; ii < 10; ii++)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment