diff options
author | marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-11-04 16:50:45 +0000 |
---|---|---|
committer | marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-11-04 16:50:45 +0000 |
commit | bf3a27b83f6d5fc0203eb4eca0bbaf425d737532 (patch) | |
tree | 316a2296cdfe0b08198dd411e536b7787022ff04 /gcc/config/rs6000/rs6000.c | |
parent | 29134d13431e7bd17d904a07f04fb5ac77da6dfa (diff) | |
download | gcc-bf3a27b83f6d5fc0203eb4eca0bbaf425d737532.tar.gz |
Pass manager: add support for termination of pass list
* cgraphunit.c (cgraph_node::expand_thunk): Call
allocate_struct_function before init_function_start.
(cgraph_node::expand): Use push_cfun and pop_cfun.
* config/i386/i386.c (ix86_code_end): Call
allocate_struct_function before init_function_start.
* config/rs6000/rs6000.c (rs6000_code_end): Likewise.
* function.c (init_function_start): Move preamble to all
callers.
* passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
(execute_one_pass): Handle newly added TODO_discard_function.
(execute_pass_list_1): Terminate if cfun equals to NULL.
(execute_pass_list): Do not push and pop cfun, expect that
cfun is set.
* tree-pass.h (TODO_discard_function): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229764 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/rs6000.c')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 271c3f91b4a..8bdd64674bf 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -34594,6 +34594,7 @@ rs6000_code_end (void) DECL_INITIAL (decl) = make_node (BLOCK); current_function_decl = decl; + allocate_struct_function (decl, false); init_function_start (decl); first_function_block_is_cold = false; /* Make sure unwind info is emitted for the thunk if needed. */ |