summaryrefslogtreecommitdiff
path: root/gcc/ira.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2011-06-24 09:18:32 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2011-06-24 09:18:32 +0000
commite87fbe2b1bc4b8a85c646e420b2b14ac7ea489fc (patch)
treef35b682ae42e13d2e7d1db2156aa0aa3f29e5367 /gcc/ira.c
parentcc8f9d4a8c19f55e89c2858bbf985f8d15a51c65 (diff)
downloadgcc-e87fbe2b1bc4b8a85c646e420b2b14ac7ea489fc.tar.gz
2011-06-24 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 175370 using svnmerge. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@175371 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira.c')
-rw-r--r--gcc/ira.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ira.c b/gcc/ira.c
index 5cfe5c0fa6b..6cca90807df 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -383,6 +383,7 @@ along with GCC; see the file COPYING3. If not see
#include "integrate.h"
#include "ggc.h"
#include "ira-int.h"
+#include "dce.h"
struct target_ira default_target_ira;
@@ -3526,6 +3527,7 @@ ira (FILE *f)
int rebuild_p;
int saved_flag_ira_share_spill_slots;
basic_block bb;
+ bool need_dce;
timevar_push (TV_IRA);
@@ -3717,7 +3719,7 @@ ira (FILE *f)
df_set_flags (DF_NO_INSN_RESCAN);
build_insn_chain ();
- reload_completed = !reload (get_insns (), ira_conflicts_p);
+ need_dce = reload (get_insns (), ira_conflicts_p);
timevar_pop (TV_RELOAD);
@@ -3760,7 +3762,7 @@ ira (FILE *f)
#endif
/* The code after the reload has changed so much that at this point
- we might as well just rescan everything. Not that
+ we might as well just rescan everything. Note that
df_rescan_all_insns is not going to help here because it does not
touch the artificial uses and defs. */
df_finish_pass (true);
@@ -3772,6 +3774,9 @@ ira (FILE *f)
if (optimize)
df_analyze ();
+ if (need_dce && optimize)
+ run_fast_dce ();
+
timevar_pop (TV_IRA);
}