+
+struct pass_t {
+ ir_graph_pass_t pass;
+ unsigned flags;
+};
+
+/**
+* Wrapper for running opt_osr() as an ir_graph pass.
+*/
+static int pass_wrapper(ir_graph *irg, void *context)
+{
+ struct pass_t *pass = context;
+ opt_osr(irg, pass->flags);
+ return 0;
+} /* pass_wrapper */
+
+ir_graph_pass_t *opt_osr_pass(const char *name, unsigned flags)
+{
+ struct pass_t *pass = XMALLOCZ(struct pass_t);
+
+ pass->flags = flags;
+ return def_graph_pass_constructor(
+ &pass->pass, name ? name : "osr", pass_wrapper);
+} /* opt_osr_pass */