# include "irhooks.h"
# include "iropt_t.h" /* for firm_set_default_operations */
+# include "irvrfy_t.h"
# include "xmalloc.h"
firm_set_default_operations(res);
firm_set_default_copy_attr(res);
+ firm_set_default_verifyer(res);
hook_new_ir_op(res);
return res;
*/
typedef type *(*get_type_func)(ir_node *self);
+/**
+ * The verify_node operation.
+ * Return non-zero if the node verification is ok, else 0.
+ * Depending on the node verification settings, may even assert.
+ *
+ * @see do_node_verification()
+ */
+typedef int (*verify_node_func)(ir_node *self, ir_graph *irg);
+
+/**
+ * The verify_node operation for Proj(X).
+ * Return non-zero if the node verification is ok, else 0.
+ * Depending on the node verification settings, may even assert.
+ *
+ * @see do_node_verification()
+ */
+typedef int (*verify_proj_node_func)(ir_node *self, ir_node *proj);
+
/** The type of an ir_op. */
struct ir_op {
opcode code; /**< the unique opcode of the op */
reassociate_func reassociate; /**< reassociate a tree */
copy_attr_func copy_attr; /**< copy node attributes */
get_type_func get_type; /**< return the type of a node */
+ verify_node_func verify_node; /**< verify the node */
+ verify_proj_node_func verify_proj_node; /**< verify the Proj node */
};
/**