+
+ set_irg_outs_inconsistent(irg);
+}
+
+typedef struct pass_t {
+ ir_graph_pass_t pass;
+ int lower_bitfields;
+} pass_t;
+
+/**
+ * Wrapper for running lower_highlevel_graph() as an ir_graph pass.
+ */
+static int lower_highlevel_graph_wrapper(ir_graph *irg, void *context)
+{
+ pass_t *pass = (pass_t*)context;
+
+ lower_highlevel_graph(irg, pass->lower_bitfields);
+ return 0;
+} /* lower_highlevel_graph_wrapper */
+
+ir_graph_pass_t *lower_highlevel_graph_pass(const char *name, int lower_bitfields)
+{
+ pass_t *pass = XMALLOCZ(pass_t);
+
+ pass->lower_bitfields = lower_bitfields;
+ return def_graph_pass_constructor(
+ &pass->pass, name ? name : "lower_hl", lower_highlevel_graph_wrapper);
+} /* lower_highlevel_graph_pass */