diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2004-08-11 17:50:47 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 2004-08-11 17:50:47 +0000 |
commit | 1a24f92f6ac24097a3f1873cecb08abf59d1d1d3 (patch) | |
tree | 1be60ac2481dad8bdd3382083d1b9056fea5fdac /gcc/tree-ssa-dom.c | |
parent | 3ec0f302092e35b9c52cc2156c548ed04fc84b21 (diff) | |
download | gcc-1a24f92f6ac24097a3f1873cecb08abf59d1d1d3.zip gcc-1a24f92f6ac24097a3f1873cecb08abf59d1d1d3.tar.gz gcc-1a24f92f6ac24097a3f1873cecb08abf59d1d1d3.tar.bz2 |
tree-flow-inline.h (get_def_ops, [...]): Add operand structure reference.
2004-08-11 Andrew MacLeod <amacleod@redhat.com>
* tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
(get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
(start_ssa_stmt_operands): Delete.
* tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
struct stmt_operands_d.
(build_ssa_operands): New extern entry point.
* tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
building code, replace with create_ssa_artficial_load_stmt().
* tree-ssa-operands.c (struct voperands_d): Delete.
(allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
(allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
(free_uses, free_defs, free_vuses, free_v_may_defs,
free_v_must_defs): Remove dealloc parameter.
(remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
(finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
vector comparisons, ssa_name reuse, and allocations here.
(verify_start_operands): Delete.
(finalize_ssa_stmt_operands): Set new operands by calling finalize
routines.
(start_ssa_stmt_operands): Move from tree-flow-inline.h.
(append_def, append_usei): Simplify to simple accumulation.
(append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
duplicates and simple accumulation.
(free_ssa_operands): Free vectors in a stmt_operand structure.
(build_ssa_operands): New. Create a new stmt_operand structure from
a stmt and an old set of stmt_operands.
(get_stmt_operands): Simplify and call build_ssa_operands.
(get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
add_call_read_ops): Don't pass prev_vops around anymore.
(note_addressable): Return if no stmt annotation.
(copy_virtual_operands): Access v_may_def operands through a struct.
(create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's
hash tables without treating the stmt as a real stmt.
* tree-ssa-operands.h (struct v_may_def_operand_type): New. Access
v_may_def def and use through a struct instead of 2 array elements.
(struct v_may_def_optype_d): Use v_may_def_operand_type.
(struct stmt_operands_d): New. Struct for storing all operand vectors.
From-SVN: r85807
Diffstat (limited to 'gcc/tree-ssa-dom.c')
-rw-r--r-- | gcc/tree-ssa-dom.c | 32 |
1 files changed, 1 insertions, 31 deletions
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c index c089cf1..d0eb675 100644 --- a/gcc/tree-ssa-dom.c +++ b/gcc/tree-ssa-dom.c @@ -2564,7 +2564,6 @@ record_equivalences_from_stmt (tree stmt, { tree rhs = TREE_OPERAND (stmt, 1); tree new; - size_t j; /* FIXME: If the LHS of the assignment is a bitfield and the RHS is a constant, we need to adjust the constant to fit into the @@ -2589,39 +2588,10 @@ record_equivalences_from_stmt (tree stmt, if (rhs) { - v_may_def_optype v_may_defs = V_MAY_DEF_OPS (ann); - v_must_def_optype v_must_defs = V_MUST_DEF_OPS (ann); - /* Build a new statement with the RHS and LHS exchanged. */ new = build (MODIFY_EXPR, TREE_TYPE (stmt), rhs, lhs); - /* Get an annotation and set up the real operands. */ - get_stmt_ann (new); - get_stmt_operands (new); - - /* Clear out the virtual operands on the new statement, we are - going to set them explicitly below. */ - remove_vuses (new); - remove_v_may_defs (new); - remove_v_must_defs (new); - - start_ssa_stmt_operands (new); - /* For each VDEF on the original statement, we want to create a - VUSE of the V_MAY_DEF result or V_MUST_DEF op on the new - statement. */ - for (j = 0; j < NUM_V_MAY_DEFS (v_may_defs); j++) - { - tree op = V_MAY_DEF_RESULT (v_may_defs, j); - add_vuse (op, new); - } - - for (j = 0; j < NUM_V_MUST_DEFS (v_must_defs); j++) - { - tree op = V_MUST_DEF_OP (v_must_defs, j); - add_vuse (op, new); - } - - finalize_ssa_stmt_operands (new); + create_ssa_artficial_load_stmt (&(ann->operands), new); /* Finally enter the statement into the available expression table. */ |