* [Trapp:99], Chapter 5.2.1.2.
* @author Goetz Lindenmaier
* @date 7.2002
- * @version $Id$
*/
#include "config.h"
#include "irgwalk.h"
#include "irprog_t.h"
#include "irdump.h"
+#include "ircons_t.h"
#define NO_CFLOOPS_WITHOUT_HEAD 1
}
}
-/* Constructs control flow backedge information for irg. */
int construct_cf_backedges(ir_graph *irg)
{
ir_graph *rem = current_ir_graph;
assert(head_rem == current_loop);
mature_loops(current_loop, irg->obst);
set_irg_loop(irg, current_loop);
- set_irg_loopinfo_state(irg, loopinfo_cf_consistent);
- assert(get_irg_loop(irg)->kind == k_ir_loop);
+ add_irg_properties(irg, IR_GRAPH_PROPERTY_CONSISTENT_LOOPINFO);
current_ir_graph = rem;
return max_loop_depth;
}
-void assure_cf_loop(ir_graph *irg)
+void assure_loopinfo(ir_graph *irg)
{
- irg_loopinfo_state state = get_irg_loopinfo_state(irg);
-
- if (state != loopinfo_cf_consistent)
- construct_cf_backedges(irg);
+ if (irg_has_properties(irg, IR_GRAPH_PROPERTY_CONSISTENT_LOOPINFO))
+ return;
+ construct_cf_backedges(irg);
}