X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgopt.h;h=b34ecae9c2e05af63ef39a37127f82efbe22d77f;hb=677f67f9b487e35b983148f48b933d54ee383db6;hp=8b15048806ecaa92dea375633d4bf6e3732e2be1;hpb=f4ae1b7b653bcd43b99bc81b40425ab595a0dc7d;p=libfirm diff --git a/ir/ir/irgopt.h b/ir/ir/irgopt.h index 8b1504880..b34ecae9c 100644 --- a/ir/ir/irgopt.h +++ b/ir/ir/irgopt.h @@ -23,6 +23,7 @@ void local_optimize_graph (ir_graph *irg); `opt_dead_node_elimination' are set. The graph may not be in state phase_building. The outs datasturcture is freed, the outs state set to no_outs. (@@@ Change this? -> inconsistent.) + Backedge information is conserved. Removes old attributes of nodes. Sets link field to NULL. Attention: the numbers assigned to nodes if the library is compiled for development/debugging are not conserved by copying. */ @@ -35,6 +36,8 @@ void dead_node_elimination(ir_graph *irg); void remove_bad_predecessors(ir_graph *irg); /* Inlines a method at the given call site. + Removes the call node and splits the basic block the call node + belongs to. Inserts a copy of the called graph between these nodes. Assumes that call is a Call node in current_ir_graph and that the type in the Call nodes type attribute is the same as the type of the called graph. @@ -49,14 +52,13 @@ void remove_bad_predecessors(ir_graph *irg); if they are equal. Sets visited masterflag in current_ir_graph to the max of the flag in current and called graph. - Removes the call node and splits the basic block the call node - belongs to. Inserts a copy of the called graph between these nodes. + Assumes that both, the called and the calling graph are in state + "pinned". It is recommended to call local_optimize_graph after inlining as this function leaves a set of obscure Tuple nodes, e.g. a Proj-Tuple-Jmp combination as control flow operation. */ void inline_method(ir_node *call, ir_graph *called_graph); - /* Inlines all small methods at call sites where the called address comes from a Const node that references the entity representing the called method. @@ -97,5 +99,4 @@ void place_code(ir_graph *irg); /********************************************************************/ void optimize_cf(ir_graph *irg); - # endif /* _IRGOPT_H_ */