aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-ssa.h
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@redhat.com>2015-09-30 17:43:26 +0000
committerJeff Law <law@gcc.gnu.org>2015-09-30 11:43:26 -0600
commitdc0ccbb3a3e60f0423ac69d82f6cb78ff9b10800 (patch)
tree9dece98ef18534e0b8a0d3a25a64b43857c34914 /gcc/gimple-ssa.h
parent0fe78d19df60f6131586feb556c1e92bb3c03961 (diff)
downloadgcc-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.h3
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