if (gimple_get_lhs (stmt) == NULL_TREE)
return MOVE_IMPOSSIBLE;
- if (!ZERO_SSA_OPERANDS (stmt, SSA_OP_VIRTUAL_DEFS))
+ if (gimple_vdef (stmt))
return MOVE_IMPOSSIBLE;
if (stmt_ends_bb_p (stmt)
if (!add_dependency (val, lim_data, loop, true))
return false;
- if (!ZERO_SSA_OPERANDS (stmt, SSA_OP_VIRTUAL_USES))
+ if (gimple_vuse (stmt))
{
mem_ref_p ref = mem_ref_in_stmt (stmt);
}
else
{
- FOR_EACH_SSA_TREE_OPERAND (val, stmt, iter, SSA_OP_VIRTUAL_USES)
+ if ((val = gimple_vuse (stmt)) != NULL_TREE)
{
if (!add_dependency (val, lim_data, loop, false))
return false;
{
gimple stmt, stmt1, stmt2;
tree var, name, lhs, type;
+ tree real_one;
stmt = gsi_stmt (*bsi);
lhs = gimple_assign_lhs (stmt);
var = create_tmp_var (type, "reciptmp");
add_referenced_var (var);
+ DECL_GIMPLE_REG_P (var) = 1;
+
+ /* For vectors, create a VECTOR_CST full of 1's. */
+ if (TREE_CODE (type) == VECTOR_TYPE)
+ {
+ int i, len;
+ tree list = NULL_TREE;
+ real_one = build_real (TREE_TYPE (type), dconst1);
+ len = TYPE_VECTOR_SUBPARTS (type);
+ for (i = 0; i < len; i++)
+ list = tree_cons (NULL, real_one, list);
+ real_one = build_vector (type, list);
+ }
+ else
+ real_one = build_real (type, dconst1);
stmt1 = gimple_build_assign_with_ops (RDIV_EXPR,
- var, build_real (type, dconst1), gimple_assign_rhs2 (stmt));
+ var, real_one, gimple_assign_rhs2 (stmt));
name = make_ssa_name (var, stmt1);
gimple_assign_set_lhs (stmt1, name);
fini_walk_dominator_tree (&walk_data);
gsi_commit_edge_inserts ();
- if (need_ssa_update_p ())
+ if (need_ssa_update_p (cfun))
rewrite_into_loop_closed_ssa (NULL, TODO_update_ssa);
}
hashval_t hash;
PTR *slot;
mem_ref_p ref;
- ssa_op_iter oi;
tree vname;
bool is_stored;
bitmap clvops;
unsigned id;
- if (ZERO_SSA_OPERANDS (stmt, SSA_OP_ALL_VIRTUALS))
+ if (!gimple_vuse (stmt))
return;
mem = simple_mem_ref_in_stmt (stmt, &is_stored);
if (is_stored)
mark_ref_stored (ref, loop);
- FOR_EACH_SSA_TREE_OPERAND (vname, stmt, oi, SSA_OP_VIRTUAL_USES)
+ if ((vname = gimple_vuse (stmt)) != NULL_TREE)
bitmap_set_bit (ref->vops, DECL_UID (SSA_NAME_VAR (vname)));
record_mem_ref_loc (ref, loop, stmt, mem);
return;
fail:
clvops = VEC_index (bitmap, memory_accesses.clobbered_vops, loop->num);
- FOR_EACH_SSA_TREE_OPERAND (vname, stmt, oi, SSA_OP_VIRTUAL_USES)
+ if ((vname = gimple_vuse (stmt)) != NULL_TREE)
bitmap_set_bit (clvops, DECL_UID (SSA_NAME_VAR (vname)));
}
lsm_tmp_name_add ("R");
break;
+ case INTEGER_CST:
+ /* Nothing. */
+ break;
+
default:
gcc_unreachable ();
}