Initial Version of pbqp coloring algorithm
[libfirm] / ir / opt / funccall.c
index 62642fb..973b00e 100644 (file)
@@ -1084,7 +1084,8 @@ struct pass_t {
 /**
  * Wrapper for running optimize_funccalls() as an ir_prog pass.
  */
-static int pass_wrapper(ir_prog *irp, void *context) {
+static int pass_wrapper(ir_prog *irp, void *context)
+{
        struct pass_t *pass = context;
 
        (void)irp;
@@ -1097,17 +1098,11 @@ ir_prog_pass_t *optimize_funccalls_pass(
        const char *name,
        int force_run, check_alloc_entity_func callback)
 {
-       struct pass_t *pass = xmalloc(sizeof(*pass));
-
-       pass->pass.kind          = k_ir_prog_pass;
-       pass->pass.run_on_irprog = pass_wrapper;
-       pass->pass.context       = pass;
-       pass->pass.name          = name ? name : "funccalls";
-
-       INIT_LIST_HEAD(&pass->pass.list);
+       struct pass_t *pass = XMALLOCZ(struct pass_t);
 
        pass->force_run = force_run;
        pass->callback  = callback;
 
-       return &pass->pass;
+       return def_prog_pass_constructor(
+               &pass->pass, name ? name : "funccall", pass_wrapper);
 }  /* optimize_funccalls_pass */