* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/opt/escape_ana.c
- * Purpose: escape analysis and optimization
- * Author: Michael Beck
- * Modified by:
- * Created: 03.11.2005
- * CVS-ID: $Id$
- * Copyright: (c) 1999-2005 Universität Karlsruhe
- */
-
/**
- * @file escape_ana.c
- *
- * A fast and simple Escape analysis.
+ * @file
+ * @author Michael Beck
+ * @date 03.11.2005
+ * @brief A fast and simple Escape analysis.
*/
#include "config.h"
} walk_env_t;
/** debug handle */
-DEBUG_ONLY(firm_dbg_module_t *dbgHandle;)
+DEBUG_ONLY(static firm_dbg_module_t *dbgHandle;)
/**
* checks whether a Raise leaves a method
size_t j;
ent = get_Call_callee(succ, --k);
- if (ent == unknown_entity) {
+ if (is_unknown_entity(ent)) {
/* we don't know what will be called, a possible escape */
return 1;
}
}
}
- if (tp && tp != firm_unknown_type) {
+ if (tp && !is_unknown_type(tp)) {
/* we could determine the type, so we could place it on the frame */
dbg = get_irn_dbg_info(alloc);
blk = get_nodes_block(alloc);
/* if allocs were removed somehow */
if (env->nr_removed && env->nr_deads) {
- /* exception control flow might have been changed */
- set_irg_doms_inconsistent(irg);
+ confirm_irg_properties(irg, IR_GRAPH_PROPERTIES_NONE);
}
}
for (call = env->found_allocs; call; call = next) {
next = (ir_node*)get_irn_link(call);
}
+
+ confirm_irg_properties(irg, IR_GRAPH_PROPERTIES_NONE);
}
return;
}
- if (get_irg_outs_state(irg) != outs_consistent)
+ if (irg_has_properties(irg, IR_GRAPH_PROPERTY_CONSISTENT_OUTS))
compute_irg_outs(irg);
env.found_allocs = NULL;
for (i = 0, n = get_irp_n_irgs(); i < n; ++i) {
ir_graph *irg = get_irp_irg(i);
- assure_irg_outs(irg);
+ assure_irg_properties(irg, IR_GRAPH_PROPERTY_CONSISTENT_OUTS);
if (callback) {
/* search for Calls */