From 97125abbe58d8a18d8346c37069449e9129dfb4b Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=B6tz=20Lindenmaier?= Date: Thu, 22 Jul 2004 07:51:51 +0000 Subject: [PATCH] bugfix: missing test for new symconst [r3544] --- ir/ir/irgopt.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ir/ir/irgopt.c b/ir/ir/irgopt.c index 5092d55f2..9b6e70e42 100644 --- a/ir/ir/irgopt.c +++ b/ir/ir/irgopt.c @@ -691,7 +691,6 @@ int inline_method(ir_node *call, ir_graph *called_graph) { if ( (prop != irg_inline_forced) && (!get_opt_optimize() || !get_opt_inline() || (prop == irg_inline_forbidden))) return 0; - /* * currently, we cannot inline two cases: * - call with compound arguments @@ -1066,6 +1065,8 @@ static ir_graph *get_call_called_irg(ir_node *call) { tv = get_Const_tarval(addr); if (get_tarval_entity(tv)) called_irg = get_entity_irg(get_tarval_entity(tv)); + } else if (get_irn_op(addr) == op_SymConst && get_SymConst_kind(addr) == symconst_addr_ent) { + called_irg = get_entity_irg(get_SymConst_entity(addr)); } return called_irg; } @@ -1268,12 +1269,12 @@ void inline_leave_functions(int maxsize, int leavesize, int size) { /* get_entity_name(get_irg_entity(callee))); */ if (inline_method(call, callee)) { did_inline = 1; - env->n_call_nodes--; - eset_insert_all(env->call_nodes, callee_env->call_nodes); - env->n_call_nodes += callee_env->n_call_nodes; - env->n_nodes += callee_env->n_nodes; - callee_env->n_callers--; - } + env->n_call_nodes--; + eset_insert_all(env->call_nodes, callee_env->call_nodes); + env->n_call_nodes += callee_env->n_call_nodes; + env->n_nodes += callee_env->n_nodes; + callee_env->n_callers--; + } } else { eset_insert(env->call_nodes, call); } -- 2.20.1