#include <adt/raw_bitset.h>
-#include "funccall_t.h"
+#include "opt_init.h"
#include "irnode_t.h"
#include "irgraph_t.h"
#include "ircons.h"
#include "iredges_t.h"
#include "irpass_t.h"
+#include "iroptimize.h"
#include "analyze_irg_args.h"
#include "irhooks.h"
#include "debug.h"
/* collect the Proj's in the Proj list */
switch (get_Proj_proj(node)) {
- case pn_Call_M_regular:
+ case pn_Call_M:
case pn_Call_X_except:
case pn_Call_X_regular:
- case pn_Call_M_except:
set_irn_link(node, ctx->proj_list);
ctx->proj_list = node;
break;
assert(get_irn_mode(mem) == mode_M);
switch (get_Proj_proj(proj)) {
- case pn_Call_M_regular: {
+ case pn_Call_M: {
/* in dead code there might be cycles where proj == mem */
if (proj != mem)
exchange(proj, mem);
break;
}
case pn_Call_X_except:
- case pn_Call_M_except:
exc_changed = 1;
exchange(proj, get_irg_bad(irg));
break;
/* collect the Proj's in the Proj list */
switch (get_Proj_proj(node)) {
- case pn_Call_M_regular:
+ case pn_Call_M:
case pn_Call_X_except:
case pn_Call_X_regular:
- case pn_Call_M_except:
set_irn_link(node, ctx->proj_list);
ctx->proj_list = node;
break;
/* kill any exception flow */
switch (get_Proj_proj(proj)) {
case pn_Call_X_except:
- case pn_Call_M_except:
exc_changed = 1;
exchange(proj, get_irg_bad(irg));
break;
/**
* 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;
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 */