[PATCH] [PR tree-optimization/69347] Fix memory consumption in threader & minor speed improvement

PR middle-end/69347
	* tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
	useless call to record_temporary_equivalences.
	* tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
	allocate 10 slots in the bb_path vector and let it grow as needed.
	(fsm_find_control_statement_thread_paths): Similarly for the next_path
	vector.

From-SVN: r232711
This commit is contained in:
Jeff Law 2016-01-21 15:21:55 -07:00 committed by Jeff Law
parent 2423a75aed
commit 7f370a2b0c
3 changed files with 12 additions and 5 deletions

View File

@ -1,3 +1,13 @@
2016-01-21 Jeff Law <law@redhat.com>
PR middle-end/69347
* tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
useless call to record_temporary_equivalences.
* tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
allocate 10 slots in the bb_path vector and let it grow as needed.
(fsm_find_control_statement_thread_paths): Similarly for the next_path
vector.
2016-01-21 David Edelsohn <dje.gcc@gmail.com>
* configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):

View File

@ -935,9 +935,6 @@ dom_opt_dom_walker::thread_across_edge (edge e)
m_avail_exprs_stack->push_marker ();
m_const_and_copies->push_marker ();
/* Traversing E may result in equivalences we can utilize. */
record_temporary_equivalences (e, m_const_and_copies, m_avail_exprs_stack);
/* With all the edge equivalences in the tables, go ahead and attempt
to thread through E->dest. */
::thread_across_edge (m_dummy_cond, e, false,

View File

@ -142,7 +142,7 @@ fsm_find_control_statement_thread_paths (tree name,
int e_count = 0;
edge_iterator ei;
vec<basic_block, va_gc> *next_path;
vec_alloc (next_path, n_basic_blocks_for_fn (cfun));
vec_alloc (next_path, 10);
/* When VAR_BB == LAST_BB_IN_PATH, then the first block in the path
will already be in VISITED_BBS. When they are not equal, then we
@ -379,7 +379,7 @@ find_jump_threads_backwards (edge e)
return;
vec<basic_block, va_gc> *bb_path;
vec_alloc (bb_path, n_basic_blocks_for_fn (cfun));
vec_alloc (bb_path, 10);
vec_safe_push (bb_path, e->dest);
hash_set<basic_block> *visited_bbs = new hash_set<basic_block>;