diff options
author | rus <rus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-09 20:58:24 +0000 |
---|---|---|
committer | rus <rus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-09 20:58:24 +0000 |
commit | 7f4db7c80779ecbc57d1146654daf0acfe18de66 (patch) | |
tree | 3af522a3b5e149c3fd498ecb1255994daae2129a /gcc/tree-inline.c | |
parent | 611349f0ec42a37591db2cd02974a11a48d10edb (diff) | |
download | gcc-profile-stdlib.tar.gz |
merge from trunkprofile-stdlib
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/profile-stdlib@154052 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 6e1ea39aa92..f0ed4ba73a7 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -1632,6 +1632,7 @@ copy_bb (copy_body_data *id, basic_block bb, int frequency_scale, edge = cgraph_edge (id->src_node, orig_stmt); if (edge) edge = cgraph_clone_edge (edge, id->dst_node, stmt, + gimple_uid (stmt), REG_BR_PROB_BASE, 1, edge->frequency, true); break; @@ -3082,6 +3083,7 @@ estimate_operator_cost (enum tree_code code, eni_weights *weights, case MINUS_EXPR: case MULT_EXPR: + case ADDR_SPACE_CONVERT_EXPR: case FIXED_CONVERT_EXPR: case FIX_TRUNC_EXPR: @@ -3345,7 +3347,7 @@ estimate_num_insns (gimple stmt, eni_weights *weights) return 0; case GIMPLE_ASM: - return 1; + return asm_str_count (gimple_asm_string (stmt)); case GIMPLE_RESX: /* This is either going to be an external function call with one @@ -5119,13 +5121,16 @@ tree_can_inline_p (struct cgraph_edge *e) { e->inline_failed = CIF_TARGET_OPTION_MISMATCH; gimple_call_set_cannot_inline (e->call_stmt, true); + e->call_stmt_cannot_inline_p = true; return false; } - if (!gimple_check_call_args (e->call_stmt)) + if (e->call_stmt + && !gimple_check_call_args (e->call_stmt)) { e->inline_failed = CIF_MISMATCHED_ARGUMENTS; gimple_call_set_cannot_inline (e->call_stmt, true); + e->call_stmt_cannot_inline_p = true; return false; } |