diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2008-05-26 18:23:38 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2008-05-26 18:23:38 +0000 |
commit | ba977e1ad972fdad98e39864d12f1d204935af2f (patch) | |
tree | 160cb158346c46e3b94ea89324a4be86274f11d8 /gcc/ipa-inline.c | |
parent | 4d492420f6e180fbce3e5616cfc10a322f39630c (diff) | |
download | gcc-ba977e1ad972fdad98e39864d12f1d204935af2f.zip gcc-ba977e1ad972fdad98e39864d12f1d204935af2f.tar.gz gcc-ba977e1ad972fdad98e39864d12f1d204935af2f.tar.bz2 |
re PR tree-optimization/36329 (latent problem with tree inlining)
PR tree-optimization/36329
* tree.h (CALL_CANNOT_INLINE_P): Add access check.
* tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
* cgraphbuild.c (initialize_inline_failed): Use the latter
macro in lieu of the former.
* ipa-inline.c (cgraph_mark_inline): Likewise.
(cgraph_decide_inlining_of_small_function): Likewise.
(cgraph_decide_inlining): Likewise.
(cgraph_decide_inlining_incrementally): Likewise.
From-SVN: r135954
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r-- | gcc/ipa-inline.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index c3e58f3..6ac851a 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -296,7 +296,7 @@ cgraph_mark_inline (struct cgraph_edge *edge) struct cgraph_node *what = edge->callee; struct cgraph_edge *e, *next; - gcc_assert (!CALL_CANNOT_INLINE_P (edge->call_stmt)); + gcc_assert (!CALL_STMT_CANNOT_INLINE_P (edge->call_stmt)); /* Look for all calls, mark them inline and clone recursively all inlined functions. */ for (e = what->callers; e; e = next) @@ -967,7 +967,7 @@ cgraph_decide_inlining_of_small_functions (void) else { struct cgraph_node *callee; - if (CALL_CANNOT_INLINE_P (edge->call_stmt) + if (CALL_STMT_CANNOT_INLINE_P (edge->call_stmt) || !cgraph_check_inline_limits (edge->caller, edge->callee, &edge->inline_failed, true)) { @@ -1093,7 +1093,7 @@ cgraph_decide_inlining (void) for (e = node->callers; e; e = next) { next = e->next_caller; - if (!e->inline_failed || CALL_CANNOT_INLINE_P (e->call_stmt)) + if (!e->inline_failed || CALL_STMT_CANNOT_INLINE_P (e->call_stmt)) continue; if (cgraph_recursive_inlining_p (e->caller, e->callee, &e->inline_failed)) @@ -1134,7 +1134,7 @@ cgraph_decide_inlining (void) if (node->callers && !node->callers->next_caller && !node->needed && node->local.inlinable && node->callers->inline_failed - && !CALL_CANNOT_INLINE_P (node->callers->call_stmt) + && !CALL_STMT_CANNOT_INLINE_P (node->callers->call_stmt) && !DECL_EXTERNAL (node->decl) && !DECL_COMDAT (node->decl)) { if (dump_file) @@ -1297,7 +1297,7 @@ cgraph_decide_inlining_incrementally (struct cgraph_node *node, if (!e->callee->local.disregard_inline_limits && (mode != INLINE_ALL || !e->callee->local.inlinable)) continue; - if (CALL_CANNOT_INLINE_P (e->call_stmt)) + if (CALL_STMT_CANNOT_INLINE_P (e->call_stmt)) continue; /* When the edge is already inlined, we just need to recurse into it in order to fully flatten the leaves. */ @@ -1399,7 +1399,7 @@ cgraph_decide_inlining_incrementally (struct cgraph_node *node, } if (!cgraph_check_inline_limits (node, e->callee, &e->inline_failed, false) - || CALL_CANNOT_INLINE_P (e->call_stmt)) + || CALL_STMT_CANNOT_INLINE_P (e->call_stmt)) { if (dump_file) { |