diff options
author | Bernd Schmidt <bernds@redhat.com> | 2015-09-30 17:43:26 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2015-09-30 11:43:26 -0600 |
commit | dc0ccbb3a3e60f0423ac69d82f6cb78ff9b10800 (patch) | |
tree | 9dece98ef18534e0b8a0d3a25a64b43857c34914 /gcc/gimple-ssa.h | |
parent | 0fe78d19df60f6131586feb556c1e92bb3c03961 (diff) | |
download | gcc-dc0ccbb3a3e60f0423ac69d82f6cb78ff9b10800.zip gcc-dc0ccbb3a3e60f0423ac69d82f6cb78ff9b10800.tar.gz gcc-dc0ccbb3a3e60f0423ac69d82f6cb78ff9b10800.tar.bz2 |
[PATCH] Update SSA_NAME manager to use two lists
* gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
* passes.c: Include tree-ssanames.h.
(execute_function_todo): Flush the pending free SSA_NAMEs after
eliminating unreachable basic blocks.
* tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
(init_ssanames): Initialize FREE_SSANAMES_QUEUE.
(fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
(flush_ssanames_freelist): New function.
(release_ssaname_fn): Put released names on the queue.
(pass_release_ssa_names::execute): Call flush_ssanames_freelist.
* tree-ssanames.h (flush_ssanames_freelist): Declare.
From-SVN: r228302
Diffstat (limited to 'gcc/gimple-ssa.h')
-rw-r--r-- | gcc/gimple-ssa.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/gimple-ssa.h b/gcc/gimple-ssa.h index c89071e..39551da 100644 --- a/gcc/gimple-ssa.h +++ b/gcc/gimple-ssa.h @@ -90,6 +90,9 @@ struct GTY(()) gimple_df { /* Free list of SSA_NAMEs. */ vec<tree, va_gc> *free_ssanames; + /* Queue of SSA_NAMEs to be freed at the next opportunity. */ + vec<tree, va_gc> *free_ssanames_queue; + /* Hashtable holding definition for symbol. If this field is not NULL, it means that the first reference to this variable in the function is a USE or a VUSE. In those cases, the SSA renamer creates an SSA name |