case REFERENCE:
{
- vn_reference_op_t vro;
- unsigned int i;
vn_reference_t ref = PRE_EXPR_REFERENCE (expr);
- fprintf (outfile, "{");
- for (i = 0;
- ref->operands.iterate (i, &vro);
- i++)
- {
- bool closebrace = false;
- if (vro->opcode != SSA_NAME
- && TREE_CODE_CLASS (vro->opcode) != tcc_declaration)
- {
- fprintf (outfile, "%s", get_tree_code_name (vro->opcode));
- if (vro->op0)
- {
- fprintf (outfile, "<");
- closebrace = true;
- }
- }
- if (vro->op0)
- {
- print_generic_expr (outfile, vro->op0);
- if (vro->op1)
- {
- fprintf (outfile, ",");
- print_generic_expr (outfile, vro->op1);
- }
- if (vro->op2)
- {
- fprintf (outfile, ",");
- print_generic_expr (outfile, vro->op2);
- }
- }
- if (closebrace)
- fprintf (outfile, ">");
- if (i != ref->operands.length () - 1)
- fprintf (outfile, ",");
- }
- fprintf (outfile, "}");
+ print_vn_reference_ops (outfile, ref->operands);
if (ref->vuse)
{
fprintf (outfile, "@");
typedef hash_table<vn_reference_hasher> vn_reference_table_type;
typedef vn_reference_table_type::iterator vn_reference_iterator_type;
+/* Pretty-print OPS to OUTFILE. */
+
+void
+print_vn_reference_ops (FILE *outfile, const vec<vn_reference_op_s> ops)
+{
+ vn_reference_op_t vro;
+ unsigned int i;
+ fprintf (outfile, "{");
+ for (i = 0; ops.iterate (i, &vro); i++)
+ {
+ bool closebrace = false;
+ if (vro->opcode != SSA_NAME
+ && TREE_CODE_CLASS (vro->opcode) != tcc_declaration)
+ {
+ fprintf (outfile, "%s", get_tree_code_name (vro->opcode));
+ if (vro->op0)
+ {
+ fprintf (outfile, "<");
+ closebrace = true;
+ }
+ }
+ if (vro->op0)
+ {
+ print_generic_expr (outfile, vro->op0);
+ if (vro->op1)
+ {
+ fprintf (outfile, ",");
+ print_generic_expr (outfile, vro->op1);
+ }
+ if (vro->op2)
+ {
+ fprintf (outfile, ",");
+ print_generic_expr (outfile, vro->op2);
+ }
+ }
+ if (closebrace)
+ fprintf (outfile, ">");
+ if (i != ops.length () - 1)
+ fprintf (outfile, ",");
+ }
+ fprintf (outfile, "}");
+}
+
+DEBUG_FUNCTION void
+debug_vn_reference_ops (const vec<vn_reference_op_s> ops)
+{
+ print_vn_reference_ops (stderr, ops);
+ fputc ('\n', stderr);
+}
/* The set of VN hashtables. */
vn_reference_t vn_reference_insert_pieces (tree, alias_set_type, alias_set_type,
tree, vec<vn_reference_op_s>,
tree, unsigned int);
+void print_vn_reference_ops (FILE *, const vec<vn_reference_op_s>);
bool vn_nary_op_eq (const_vn_nary_op_t const vno1,
const_vn_nary_op_t const vno2);