diff options
author | Martin Jambor <mjambor@suse.cz> | 2014-09-10 13:36:29 +0200 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2014-09-10 13:36:29 +0200 |
commit | 77b7d74bf69cc11794079801e9c4b7bdaa7c4b16 (patch) | |
tree | 2688547317992efb858cd32a074c6de325ec8d25 /gcc | |
parent | bec6320858ac191ce070cb789fc55792a73084da (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cgraphclones.c | 4 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 10 |
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. */ |