Commit 4eadede7 by Zack Weinberg Committed by Zack Weinberg

cse.c (cse_altered): New internal flag.

2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>

	* cse.c (cse_altered): New internal flag.
	(cse_insn): Set it if we changed an insn.
	(cse_main): Clear cse_altered before each basic block.
	Only garbage collect if cse_altered is true afterward.

From-SVN: r31962
parent f4445cc0
2000-02-13 Zack Weinberg <zack@wolery.cumb.org>
* cse.c (cse_altered): New internal flag.
(cse_insn): Set it if we changed an insn.
(cse_main): Clear cse_altered before each basic block.
Only garbage collect if cse_altered is true afterward.
Sun Feb 13 14:12:28 2000 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> Sun Feb 13 14:12:28 2000 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* sparc/sol2.h (LIB_SPEC): Link -ldl if profiling. * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
......
...@@ -371,6 +371,11 @@ static int max_uid; ...@@ -371,6 +371,11 @@ static int max_uid;
#define INSN_CUID(INSN) (uid_cuid[INSN_UID (INSN)]) #define INSN_CUID(INSN) (uid_cuid[INSN_UID (INSN)])
/* Nonzero if this pass has made changes, and therefore it's
worthwhile to run the garbage collector. */
static int cse_altered;
/* Nonzero if cse has altered conditional jump insns /* Nonzero if cse has altered conditional jump insns
in such a way that jump optimization should be redone. */ in such a way that jump optimization should be redone. */
...@@ -5313,6 +5318,7 @@ cse_insn (insn, libcall_insn) ...@@ -5313,6 +5318,7 @@ cse_insn (insn, libcall_insn)
/* If we made a change, recompute SRC values. */ /* If we made a change, recompute SRC values. */
if (src != sets[i].src) if (src != sets[i].src)
{ {
cse_altered = 1;
do_not_record = 0; do_not_record = 0;
hash_arg_in_memory = 0; hash_arg_in_memory = 0;
sets[i].src = src; sets[i].src = src;
...@@ -6784,6 +6790,7 @@ cse_main (f, nregs, after_loop, file) ...@@ -6784,6 +6790,7 @@ cse_main (f, nregs, after_loop, file)
insn = f; insn = f;
while (insn) while (insn)
{ {
cse_altered = 0;
cse_end_of_basic_block (insn, &val, flag_cse_follow_jumps, after_loop, cse_end_of_basic_block (insn, &val, flag_cse_follow_jumps, after_loop,
flag_cse_skip_blocks); flag_cse_skip_blocks);
...@@ -6834,7 +6841,7 @@ cse_main (f, nregs, after_loop, file) ...@@ -6834,7 +6841,7 @@ cse_main (f, nregs, after_loop, file)
cse_jumps_altered |= old_cse_jumps_altered; cse_jumps_altered |= old_cse_jumps_altered;
} }
if (ggc_p) if (ggc_p && cse_altered)
ggc_collect (); ggc_collect ();
#ifdef USE_C_ALLOCA #ifdef USE_C_ALLOCA
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment