aboutsummaryrefslogtreecommitdiff
path: root/gcc/dce.c
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2012-10-08 15:33:58 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2012-10-08 15:33:58 +0000
commit7b19209f2934c0ac28445ff2032747552a390f2f (patch)
treedc4fd0ce62886f374accbfc584455a9e48228637 /gcc/dce.c
parent76cee070fd46483d818ffee61b7ec12be062afda (diff)
downloadgcc-7b19209f2934c0ac28445ff2032747552a390f2f.zip
gcc-7b19209f2934c0ac28445ff2032747552a390f2f.tar.gz
gcc-7b19209f2934c0ac28445ff2032747552a390f2f.tar.bz2
bitmap.h (bitmap_and_into): Update prototype.
* bitmap.h (bitmap_and_into): Update prototype. * bitmap.c (bitmap_and_into): Return true if the target bitmap changed, false otherwise. * df.h (df_dump_insn_problem_function): New function type. (struct df_problem): Add two functions, to dump just before and just after an insn. (DF_RD_PRUNE_DEAD_DEFS): New changable flag. (df_dump_insn_top, df_dump_insn_bottom): New prototypes. * df-core (df_dump_region): Use dump_bb. (df_dump_bb_problem_data): New function. (df_dump_top, df_dump_bottom): Rewrite using df_dump_bb_problem_data. (df_dump_insn_problem_data): New function. (df_dump_insn_top, df_dump_insn_bottom): New functions. * df-scan.c (problem_SCAN): Add NULL fields for new members. * df-problems.c (df_rd_local_compute): Ignore hard registers if DF_NO_HARD_REGS is in effect. (df_rd_transfer_function): If DF_RD_PRUNE_DEAD_DEFS is in effect, prune reaching defs using the LR problem. (df_rd_start_dump): Fix dumping of DEFs map. (df_rd_dump_defs_set): New function. (df_rd_top_dump, df_rd_bottom_dump): Use it. (problem_RD): Add NULL fields for new members. (problem_LR, problem_LIVE): Likewise. (df_chain_bb_dump): New function. (df_chain_top_dump): Dump only for artificial DEFs and USEs, using df_chain_bb_dump. (df_chain_bottom_dump): Likewise. (df_chain_insn_top_dump, df_chain_insn_bottom_dump): New functions. (problem_CHAIN): Add them as new members. (problem_WORD_LR, problem_NOTE): Add NULL fields for new members. (problem_MD): Likewise. * cfgrtl.c (rtl_dump_bb): Use df_dump_insn_top and df_dump_insn_bottom. (print_rtl_with_bb): Likewise. * dce.c (init_dce): Use DF_RD_PRUNE_DEAD_DEFS. * loop-invariant.c (find_defs): Likewise. * loop-iv.c (iv_analysis_loop_init): Likewise. * ree.c (find_and_remove_re): Likewise. * web.c (web_main): Likewise. From-SVN: r192213
Diffstat (limited to 'gcc/dce.c')
-rw-r--r--gcc/dce.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/dce.c b/gcc/dce.c
index 11f8edb..9a42da7 100644
--- a/gcc/dce.c
+++ b/gcc/dce.c
@@ -704,7 +704,10 @@ init_dce (bool fast)
if (!df_in_progress)
{
if (!fast)
- df_chain_add_problem (DF_UD_CHAIN);
+ {
+ df_set_flags (DF_RD_PRUNE_DEAD_DEFS);
+ df_chain_add_problem (DF_UD_CHAIN);
+ }
df_analyze ();
}