aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2004-08-11 17:50:47 +0000
committerAndrew Macleod <amacleod@gcc.gnu.org>2004-08-11 17:50:47 +0000
commit1a24f92f6ac24097a3f1873cecb08abf59d1d1d3 (patch)
tree1be60ac2481dad8bdd3382083d1b9056fea5fdac /gcc/tree-flow.h
parent3ec0f302092e35b9c52cc2156c548ed04fc84b21 (diff)
downloadgcc-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-flow.h')
-rw-r--r--gcc/tree-flow.h13
1 files changed, 5 insertions, 8 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index d4700354..1faa91a 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -266,14 +266,7 @@ struct stmt_ann_d GTY(())
/* Basic block that contains this statement. */
basic_block GTY ((skip (""))) bb;
- /* Statement operands. */
- struct def_optype_d * GTY (()) def_ops;
- struct use_optype_d * GTY (()) use_ops;
-
- /* Virtual operands (V_MAY_DEF, VUSE, and V_MUST_DEF). */
- struct v_may_def_optype_d * GTY (()) v_may_def_ops;
- struct vuse_optype_d * GTY (()) vuse_ops;
- struct v_must_def_optype_d * GTY (()) v_must_def_ops;
+ struct stmt_operands_d operands;
/* Dataflow information. */
dataflow_t df;
@@ -690,6 +683,10 @@ void vn_delete (void);
/* In tree-sra.c */
void insert_edge_copies (tree stmt, basic_block bb);
+/* In tree-ssa-operands.c */
+extern void build_ssa_operands (tree, stmt_ann_t, stmt_operands_p,
+ stmt_operands_p);
+
#include "tree-flow-inline.h"
#endif /* _TREE_FLOW_H */