re PR tree-optimization/39643 (cris-elf gcc.dg/torture/builtin-math-3.c -O1 and -Os sincos one)

2009-04-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39643
	* tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
	IMAGPART_EXPRs of complex constants.
	(execute_fold_all_builtins): If we folded a call queue
	TODO_update_address_taken.

From-SVN: r145604
This commit is contained in:
Richard Guenther 2009-04-06 14:16:15 +00:00 committed by Richard Biener
parent 94986f6d35
commit 4bad83f55a
2 changed files with 16 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2009-04-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39643
* tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
IMAGPART_EXPRs of complex constants.
(execute_fold_all_builtins): If we folded a call queue
TODO_update_address_taken.
2009-04-06 Jan Hubicka <jh@suse.cz>
PR middle-end/39659

View File

@ -949,12 +949,14 @@ ccp_fold (gimple stmt)
if (kind == tcc_reference)
{
if (TREE_CODE (rhs) == VIEW_CONVERT_EXPR
if ((TREE_CODE (rhs) == VIEW_CONVERT_EXPR
|| TREE_CODE (rhs) == REALPART_EXPR
|| TREE_CODE (rhs) == IMAGPART_EXPR)
&& TREE_CODE (TREE_OPERAND (rhs, 0)) == SSA_NAME)
{
prop_value_t *val = get_value (TREE_OPERAND (rhs, 0));
if (val->lattice_val == CONSTANT)
return fold_unary (VIEW_CONVERT_EXPR,
return fold_unary (TREE_CODE (rhs),
TREE_TYPE (rhs), val->value);
}
else if (TREE_CODE (rhs) == INDIRECT_REF
@ -3270,7 +3272,10 @@ execute_fold_all_builtins (void)
push_stmt_changes (gsi_stmt_ptr (&i));
if (!update_call_from_tree (&i, result))
gimplify_and_update_call_from_tree (&i, result);
{
gimplify_and_update_call_from_tree (&i, result);
todoflags |= TODO_update_address_taken;
}
stmt = gsi_stmt (i);
pop_stmt_changes (gsi_stmt_ptr (&i));