diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2005-02-24 01:55:11 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2005-02-24 01:55:11 +0000 |
commit | 03ce14dbc0ca6b32e83d4167449a3cbce4305480 (patch) | |
tree | 719c814a2550a91e693efdf9f7603e5d8e387c76 /gcc/cse.c | |
parent | b86ba8a3efa78849fb43c627aa61764b642e14d1 (diff) | |
download | gcc-03ce14dbc0ca6b32e83d4167449a3cbce4305480.tar.gz |
cse.c (delete_trivially_dead_insns): Speed up by using NEXT_INSN and PREV_INSN directly instead of next_real_insn...
* cse.c (delete_trivially_dead_insns): Speed up by using
NEXT_INSN and PREV_INSN directly instead of next_real_insn and
prev_real_insn.
From-SVN: r95488
Diffstat (limited to 'gcc/cse.c')
-rw-r--r-- | gcc/cse.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/cse.c b/gcc/cse.c index e16113c68b8..5bc6ce40c90 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -7284,8 +7284,9 @@ delete_trivially_dead_insns (rtx insns, int nreg) timevar_push (TV_DELETE_TRIVIALLY_DEAD); /* First count the number of times each register is used. */ counts = xcalloc (nreg, sizeof (int)); - for (insn = next_real_insn (insns); insn; insn = next_real_insn (insn)) - count_reg_usage (insn, counts, 1); + for (insn = insns; insn; insn = NEXT_INSN (insn)) + if (INSN_P (insn)) + count_reg_usage (insn, counts, 1); /* Go from the last insn to the first and delete insns that only set unused registers or copy a register to itself. As we delete an insn, remove @@ -7294,15 +7295,13 @@ delete_trivially_dead_insns (rtx insns, int nreg) The first jump optimization pass may leave a real insn as the last insn in the function. We must not skip that insn or we may end up deleting code that is not really dead. */ - insn = get_last_insn (); - if (! INSN_P (insn)) - insn = prev_real_insn (insn); - - for (; insn; insn = prev) + for (insn = get_last_insn (); insn; insn = prev) { int live_insn = 0; - prev = prev_real_insn (insn); + prev = PREV_INSN (insn); + if (!INSN_P (insn)) + continue; /* Don't delete any insns that are part of a libcall block unless we can delete the whole libcall block. |