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.
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. */
switch (get_irn_opcode(n)) {
case iro_Const:
res = get_Const_tarval(n);
+ break;
+ case iro_SymConst:
+ if ((get_SymConst_kind(n) == size) &&
+ (get_type_state(get_SymConst_type(n))) == layout_fixed)
+ res = tarval_from_long (mode_i, get_type_size(get_SymConst_type(n)));
+ break;
case iro_Add:
if (ta && tb && (get_irn_mode(a) == get_irn_mode(b))
&& (get_irn_mode(a) != mode_p)) {