re PR middle-end/28071 (A file that can not be compiled in reasonable time/space)

PR rtl-optimization/28071
	* cselib.c (cselib_process_insn): Don't remove useless values too
	often for very large hashtables.

From-SVN: r115777
This commit is contained in:
Jan Hubicka 2006-07-27 18:03:22 +02:00 committed by Jan Hubicka
parent 69bfd3c9ba
commit 96d0cc8186
2 changed files with 11 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2006-07-27 Jan Hubicka <jh@suse.cz>
PR rtl-optimization/28071
* cselib.c (cselib_process_insn): Don't remove useless values too
often for very large hashtables.
2006-07-27 Jan Hubicka <jh@suse.cz>
PR rtl-optimization/28071

View File

@ -1437,7 +1437,11 @@ cselib_process_insn (rtx insn)
cselib_current_insn_in_libcall = false;
cselib_current_insn = 0;
if (n_useless_values > MAX_USELESS_VALUES)
if (n_useless_values > MAX_USELESS_VALUES
/* remove_useless_values is linear in the hash table size. Avoid
quadratic behaviour for very large hashtables with very few
useless elements. */
&& (unsigned int)n_useless_values > cselib_hash_table->n_elements / 4)
remove_useless_values ();
}