aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2014-09-10 13:36:29 +0200
committerMartin Jambor <jamborm@gcc.gnu.org>2014-09-10 13:36:29 +0200
commit77b7d74bf69cc11794079801e9c4b7bdaa7c4b16 (patch)
tree2688547317992efb858cd32a074c6de325ec8d25
parentbec6320858ac191ce070cb789fc55792a73084da (diff)
downloadgcc-77b7d74bf69cc11794079801e9c4b7bdaa7c4b16.zip
gcc-77b7d74bf69cc11794079801e9c4b7bdaa7c4b16.tar.gz
gcc-77b7d74bf69cc11794079801e9c4b7bdaa7c4b16.tar.bz2
cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
2014-09-10 Martin Jambor <mjambor@suse.cz> * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag. (analyze): Do not set analyze flag if expand_thunk returns false;. (create_wrapper): Likewise. * cgraphclones.c (duplicate_thunk_for_node): Likewise. From-SVN: r215123
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cgraphclones.c4
-rw-r--r--gcc/cgraphunit.c10
3 files changed, 13 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3c91906..acb16ab 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2014-09-10 Martin Jambor <mjambor@suse.cz>
+ * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
+ (analyze): Do not set analyze flag if expand_thunk returns false;.
+ (create_wrapper): Likewise.
+ * cgraphclones.c (duplicate_thunk_for_node): Likewise.
+
+2014-09-10 Martin Jambor <mjambor@suse.cz>
+
PR ipa/61654
* cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
new decl properly. Analyze the new thunk if it is expanded.
diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c
index 2a17de5..224bb55 100644
--- a/gcc/cgraphclones.c
+++ b/gcc/cgraphclones.c
@@ -371,9 +371,7 @@ duplicate_thunk_for_node (cgraph_node *thunk, cgraph_node *node)
CGRAPH_FREQ_BASE);
e->call_stmt_cannot_inline_p = true;
symtab->call_edge_duplication_hooks (thunk->callees, e);
- if (!new_thunk->expand_thunk (false, false))
- new_thunk->analyzed = true;
- else
+ if (new_thunk->expand_thunk (false, false))
{
new_thunk->thunk.thunk_p = false;
new_thunk->analyze ();
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 3a99729..3e3b8d2 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -576,7 +576,6 @@ cgraph_node::analyze (void)
if (!expand_thunk (false, false))
{
thunk.alias = NULL;
- analyzed = true;
return;
}
thunk.alias = NULL;
@@ -1451,7 +1450,10 @@ cgraph_node::expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)
tree restype = TREE_TYPE (TREE_TYPE (thunk_fndecl));
if (!output_asm_thunks)
- return false;
+ {
+ analyzed = true;
+ return false;
+ }
if (in_lto_p)
get_body ();
@@ -2313,9 +2315,7 @@ cgraph_node::create_wrapper (cgraph_node *target)
cgraph_edge *e = create_edge (target, NULL, 0, CGRAPH_FREQ_BASE);
- if (!expand_thunk (false, true))
- analyzed = true;
-
+ expand_thunk (false, true);
e->call_stmt_cannot_inline_p = true;
/* Inline summary set-up. */