mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-15 21:01:09 +08:00
tree-ssa-pre.c (eliminate): When replacing a PHI node carry out a necessary conversion.
2009-04-15 Richard Guenther <rguenther@suse.de> * tree-ssa-pre.c (eliminate): When replacing a PHI node carry out a necessary conversion. * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to names we didn't value number. * tree-mudflap.c (mf_build_check_statement_for): Use correct types. From-SVN: r146121
This commit is contained in:
parent
25e20805c0
commit
f116fecf89
@ -1,3 +1,11 @@
|
||||
2009-04-15 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* tree-ssa-pre.c (eliminate): When replacing a PHI node carry
|
||||
out a necessary conversion.
|
||||
* tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
|
||||
names we didn't value number.
|
||||
* tree-mudflap.c (mf_build_check_statement_for): Use correct types.
|
||||
|
||||
2009-04-15 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/39764
|
||||
|
@ -634,7 +634,7 @@ mf_build_check_statement_for (tree base, tree limit,
|
||||
|
||||
/* Build the conditional jump. 'cond' is just a temporary so we can
|
||||
simply build a void COND_EXPR. We do need labels in both arms though. */
|
||||
g = gimple_build_cond (NE_EXPR, cond, integer_zero_node, NULL_TREE,
|
||||
g = gimple_build_cond (NE_EXPR, cond, boolean_false_node, NULL_TREE,
|
||||
NULL_TREE);
|
||||
gimple_set_location (g, location);
|
||||
gimple_seq_add_stmt (&seq, g);
|
||||
@ -664,9 +664,9 @@ mf_build_check_statement_for (tree base, tree limit,
|
||||
/* u is a string, so it is already a gimple value. */
|
||||
u = mf_file_function_line_tree (location);
|
||||
/* NB: we pass the overall [base..limit] range to mf_check. */
|
||||
v = fold_build2 (PLUS_EXPR, integer_type_node,
|
||||
v = fold_build2 (PLUS_EXPR, mf_uintptr_type,
|
||||
fold_build2 (MINUS_EXPR, mf_uintptr_type, mf_limit, mf_base),
|
||||
integer_one_node);
|
||||
build_int_cst (mf_uintptr_type, 1));
|
||||
v = force_gimple_operand (v, &stmts, true, NULL_TREE);
|
||||
gimple_seq_add_seq (&seq, stmts);
|
||||
g = gimple_build_call (mf_check_fndecl, 4, mf_base, v, dirflag, u);
|
||||
|
@ -4181,6 +4181,8 @@ eliminate (void)
|
||||
|
||||
remove_phi_node (&gsi, false);
|
||||
|
||||
if (!useless_type_conversion_p (TREE_TYPE (res), TREE_TYPE (sprime)))
|
||||
sprime = fold_convert (TREE_TYPE (res), sprime);
|
||||
stmt = gimple_build_assign (res, sprime);
|
||||
SSA_NAME_DEF_STMT (res) = stmt;
|
||||
if (TREE_CODE (sprime) == SSA_NAME)
|
||||
|
@ -2886,7 +2886,8 @@ run_scc_vn (bool may_insert_arg)
|
||||
if (!name)
|
||||
continue;
|
||||
info = VN_INFO (name);
|
||||
if (info->valnum == name)
|
||||
if (info->valnum == name
|
||||
|| info->valnum == VN_TOP)
|
||||
info->value_id = get_next_value_id ();
|
||||
else if (is_gimple_min_invariant (info->valnum))
|
||||
info->value_id = get_or_alloc_constant_value_id (info->valnum);
|
||||
|
Loading…
x
Reference in New Issue
Block a user