ir_graph_pass_t *memory,
const char *name, int (*function)(ir_graph *irg, void *context));
+/**
+ * Set the run_parallel property of a graph pass.
+ * If the flag is set to non-zero, the pass can be executed
+ * parallel on all graphs of a ir_prog.
+ *
+ * @param pass the pass
+ * @param flag new flag setting
+ */
+void ir_graph_pass_set_parallel(ir_graph_pass_t *pass, int flag);
+
/**
* Creates an ir_prog pass for running void function().
* Uses the default verifier and dumper.
return pass;
} /* def_graph_pass_constructor */
+/* set the run parallel property */
+void ir_graph_pass_set_parallel(ir_graph_pass_t *pass, int flag) {
+ pass->run_parallel = flag != 0;
+} /* ir_graph_pass_set_parallel */
/**
* Wrapper for running void function(void) as an ir_prog pass.
{
ir_graph_pass_t *path = def_graph_pass_ret(name ? name : "conv_opt", conv_opt);
- // safe to run parallel on all irgs
- path->run_parallel = 1;
+ /* safe to run parallel on all irgs */
+ ir_graph_pass_set_parallel(path, 1);
return path;
}