+ return env;
+}
+
+static void prepare_graph(be_main_session_env_t *s)
+{
+ /* set the current graph (this is important for several firm functions) */
+ current_ir_graph = s->irg;
+
+ /* Let the isa prepare the graph. */
+ s->main_env->arch_env->isa->prepare_graph(s->irg);
+
+ /* Normalize proj nodes. */
+ normalize_proj_nodes(s->irg);
+
+ /* Remove critical edges */
+ remove_critical_cf_edges(s->irg);
+
+ /* Compute the dominance information. */
+ free_dom_and_peace(s->irg);
+ compute_doms(s->irg);
+
+ /* Compute the dominance frontiers */
+ s->dom_front = be_compute_dominance_frontiers(s->irg);
+
+ /* Ensure, that the ir_edges are computed. */
+ edges_activate(s->irg);
+
+ /* Compute loop nesting information (for weighting copies) */
+ if (get_irg_loopinfo_state(s->irg) != (loopinfo_valid & loopinfo_cf_consistent))
+ construct_cf_backedges(s->irg);
+
+ be_check_dominance(s->irg);