diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2014-12-11 22:48:48 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2014-12-11 21:48:48 +0000 |
commit | 17e0fc9202d9edf96a8c70e54f9a105f8d477016 (patch) | |
tree | 5fd382a134825548701642cd06befc46ffb8a9b4 /gcc/cgraph.h | |
parent | d4b7742db2e94140e2556fbd44fc819ef5c912e1 (diff) | |
download | gcc-17e0fc9202d9edf96a8c70e54f9a105f8d477016.zip gcc-17e0fc9202d9edf96a8c70e54f9a105f8d477016.tar.gz gcc-17e0fc9202d9edf96a8c70e54f9a105f8d477016.tar.bz2 |
re PR ipa/61324 (ICE: SIGSEGV at ipa-comdats.c:321 with -fno-use-cxa-atexit -fkeep-inline-functions)
PR ipa/61324
* testsuite/g++.dg/pr61324.C: New testcase by Trevor Saunders.
* testsuite/g++.dg/tm/pr51411-2.C: Update se the extern function is
not eliminated early.
* testsuite/gcc.target/i386/pr57756.c: Turn extern inline into static
inline.
* passes.c (execute_todo): Update call of remove_unreachable_nodes.
* ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions.
* cgraphunit.c (symbol_table::process_new_functions): Add
IPA_SSA_AFTER_INLINING.
(ipa_passes): Update call of remove_unreachable_nodes.
(symbol_table::compile): Remove call of remove_unreachable_nodes.
* ipa-inline.c (inline_small_functions): Do not ICE with
-flto-partition=none
(ipa_inline): Update symtab->state; fix formatting
update call of remove_unreachable_nodes.
* cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
* cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING.
(remove_unreachable_nodes): Update.
* ipa.c (process_references): Keep external references only
when optimizing.
(walk_polymorphic_call_targets): Keep possible polymorphic call
target only when devirtualizing.
(symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P
parameter.
(ipa_single_use): Update comment.
* ipa-pure-const.c (cdtor_p): New function.
(propagate_pure_const): Track if some cdtor was turned pure/const.
(execute): Return TODO_remove_functions if needed.
* ipa-comdats.c (ipa_comdats): Update comment.
* lto.c (read_cgraph_and_symbols): Update call of
remove_unreachable_nodes.
(do_whole_program_analysis): Remove call of
symtab->remove_unreachable_nodes
From-SVN: r218640
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r-- | gcc/cgraph.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 891b925..a2fc563 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -1801,12 +1801,15 @@ enum symtab_state PARSING, /* Callgraph is being constructed. It is safe to add new functions. */ CONSTRUCTION, - /* Callgraph is being at LTO time. */ + /* Callgraph is being streamed-in at LTO time. */ LTO_STREAMING, - /* Callgraph is built and IPA passes are being run. */ + /* Callgraph is built and early IPA passes are being run. */ IPA, /* Callgraph is built and all functions are transformed to SSA form. */ IPA_SSA, + /* All inline decisions are done; it is now possible to remove extern inline + functions and virtual call targets. */ + IPA_SSA_AFTER_INLINING, /* Functions are now ordered and being passed to RTL expanders. */ EXPANSION, /* All cgraph expansion is done. */ @@ -1876,7 +1879,7 @@ public: } /* Perform reachability analysis and reclaim all unreachable nodes. */ - bool remove_unreachable_nodes (bool before_inlining_p, FILE *file); + bool remove_unreachable_nodes (FILE *file); /* Optimization of function bodies might've rendered some variables as unnecessary so we want to avoid these from being compiled. Re-do |