mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-31 21:41:33 +08:00
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:
parent
94986f6d35
commit
4bad83f55a
@ -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
|
||||
|
@ -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));
|
||||
|
Loading…
x
Reference in New Issue
Block a user