preprocessor flag for node_nr
[libfirm] / ir / ir / irvrfy.h
index 68d4a13..4bacb19 100644 (file)
@@ -66,11 +66,38 @@ int irn_vrfy_irg_dump(struct ir_node *checknode, ir_graph *irg, const char **bad
 
 /**
  * Calls irn_vrfy for each node in irg.
- * Graph must be in state "pinned".
+ * Graph must be in state "op_pin_state_pinned".
  *
  * \return
  *     NON-zero on success.
  */
 int irg_vrfy(ir_graph *irg);
 
+/**
+ * Possible flags for irg_vrfy_bads().
+ */
+enum verify_bad_flags_t {
+  BAD_CF      = 1,     /**< Bad nodes are allowed as predecessors of Blocks and Phis. */
+  BAD_DF      = 2,     /**< Bad nodes are allowed as dataflow predecessors. */
+  BAD_BLOCK   = 4,     /**< Bad nodes are allowed as Block input. */
+  TUPLE       = 8      /**< Tuple nodes are allowed. */
+};
+
+/**
+ * Verify occurance of bad nodes in a graph.
+ *
+ * @param irg    The graph to verify
+ * @param flags  combination of verify_bad_flags_t flags describing
+ *               which Bads are allowed
+ * @returns      a value combined of verify_bad_flags_t indicating the problems found.
+ */
+int irg_vrfy_bads(ir_graph *irg, int flags);
+
+/**
+ *  Enable/disable verification of Load/Store nodes with
+ *  its entities. If disabled, Store(SymConst(array)) will be allowed
+ *  (C-frontend builds this :-)
+ */
+void vrfy_enable_entity_tests(int enable);
+
 # endif /* _IRVRFY_H_ */