summaryrefslogtreecommitdiff
path: root/gcc/cfgcleanup.c
diff options
context:
space:
mode:
authordavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-23 15:22:05 +0000
committerdavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-23 15:22:05 +0000
commit43a852ea4edb3bace60c8f0880cdc1768ace6151 (patch)
tree40fccab8e687849f2b4ac8156c613c1dd0531a4a /gcc/cfgcleanup.c
parent2c64e1a1654e517d649af553c5d100983f76e85a (diff)
downloadgcc-43a852ea4edb3bace60c8f0880cdc1768ace6151.tar.gz
2002-05-23 David S. Miller <davem@redhat.com>
* basic-block.h (CLEANUP_NO_INSN_DEL): Define it. * cfgcleanup.c (cleanup_cfg): If it is set do not attempt to delete trivially dead insns. * except.c (finish_eh_generation): Pass it to cleanup_cfg. * toplev.c (rest_of_compilation): Document non-trivial aspect the RTL before optimize_save_area_alloca is run. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53789 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgcleanup.c')
-rw-r--r--gcc/cfgcleanup.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index d5f6de18555..1e4056a60f4 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -1800,7 +1800,8 @@ cleanup_cfg (mode)
changed = true;
/* We've possibly created trivially dead code. Cleanup it right
now to introduce more oppurtunities for try_optimize_cfg. */
- if (!(mode & (CLEANUP_UPDATE_LIFE | CLEANUP_PRE_SIBCALL))
+ if (!(mode & (CLEANUP_NO_INSN_DEL
+ | CLEANUP_UPDATE_LIFE | CLEANUP_PRE_SIBCALL))
&& !reload_completed)
delete_trivially_dead_insns (get_insns(), max_reg_num ());
}
@@ -1819,7 +1820,8 @@ cleanup_cfg (mode)
| PROP_LOG_LINKS))
break;
}
- else if (!(mode & CLEANUP_PRE_SIBCALL) && !reload_completed)
+ else if (!(mode & (CLEANUP_NO_INSN_DEL | CLEANUP_PRE_SIBCALL))
+ && !reload_completed)
{
if (!delete_trivially_dead_insns (get_insns(), max_reg_num ()))
break;