diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-24 09:18:32 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-24 09:18:32 +0000 |
commit | e87fbe2b1bc4b8a85c646e420b2b14ac7ea489fc (patch) | |
tree | f35b682ae42e13d2e7d1db2156aa0aa3f29e5367 /gcc/ira.c | |
parent | cc8f9d4a8c19f55e89c2858bbf985f8d15a51c65 (diff) | |
download | gcc-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.c | 9 |
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); } |