aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorXinliang David Li <davidxl@google.com>2009-08-12 16:51:41 +0000
committerXinliang David Li <davidxl@gcc.gnu.org>2009-08-12 16:51:41 +0000
commit6eb29714e4e42bb0ce53759b2567a71b96cd5c8e (patch)
tree169e66302796b1a698328523a598d07c824939db /gcc/ipa-inline.c
parente8e76230ed27bb3a942c0db135089f905c43684f (diff)
downloadgcc-6eb29714e4e42bb0ce53759b2567a71b96cd5c8e.zip
gcc-6eb29714e4e42bb0ce53759b2567a71b96cd5c8e.tar.gz
gcc-6eb29714e4e42bb0ce53759b2567a71b96cd5c8e.tar.bz2
Fix to PR41012
From-SVN: r150703
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r--gcc/ipa-inline.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index dde8181c..79de363 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -1006,10 +1006,8 @@ cgraph_decide_inlining_of_small_functions (void)
}
continue;
}
- if (!tree_can_inline_p (edge->caller->decl, edge->callee->decl))
+ if (!tree_can_inline_p (edge))
{
- gimple_call_set_cannot_inline (edge->call_stmt, true);
- edge->inline_failed = CIF_TARGET_OPTION_MISMATCH;
if (dump_file)
fprintf (dump_file, " inline_failed:%s.\n",
cgraph_inline_failed_string (edge->inline_failed));
@@ -1184,11 +1182,8 @@ cgraph_decide_inlining (void)
if (cgraph_recursive_inlining_p (e->caller, e->callee,
&e->inline_failed))
continue;
- if (!tree_can_inline_p (e->caller->decl, e->callee->decl))
- {
- gimple_call_set_cannot_inline (e->call_stmt, true);
- continue;
- }
+ if (!tree_can_inline_p (e))
+ continue;
if (cgraph_mark_inline_edge (e, true, NULL))
redo_always_inline = true;
if (dump_file)
@@ -1440,14 +1435,14 @@ cgraph_decide_inlining_incrementally (struct cgraph_node *node,
}
continue;
}
- if (!tree_can_inline_p (node->decl, e->callee->decl))
+ if (!tree_can_inline_p (e))
{
- gimple_call_set_cannot_inline (e->call_stmt, true);
if (dump_file)
{
indent_to (dump_file, depth);
fprintf (dump_file,
- "Not inlining: Target specific option mismatch.\n");
+ "Not inlining: %s",
+ cgraph_inline_failed_string (e->inline_failed));
}
continue;
}
@@ -1553,14 +1548,14 @@ cgraph_decide_inlining_incrementally (struct cgraph_node *node,
}
continue;
}
- if (!tree_can_inline_p (node->decl, e->callee->decl))
+ if (!tree_can_inline_p (e))
{
- gimple_call_set_cannot_inline (e->call_stmt, true);
if (dump_file)
{
indent_to (dump_file, depth);
fprintf (dump_file,
- "Not inlining: Target specific option mismatch.\n");
+ "Not inlining: %s.",
+ cgraph_inline_failed_string (e->inline_failed));
}
continue;
}