aboutsummaryrefslogtreecommitdiff
path: root/gcc/df-problems.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2010-11-16 22:13:52 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2010-11-16 22:13:52 +0000
commit885c9b5d3a53c531fca622b4a3b0ef03df92daed (patch)
treed3ce62c6785fad984002bec2dbfc693e299f8950 /gcc/df-problems.c
parent2b12962772d3b0e85d860609f32bfb28515d5ba9 (diff)
downloadgcc-885c9b5d3a53c531fca622b4a3b0ef03df92daed.zip
gcc-885c9b5d3a53c531fca622b4a3b0ef03df92daed.tar.gz
gcc-885c9b5d3a53c531fca622b4a3b0ef03df92daed.tar.bz2
re PR rtl-optimization/46315 (-O2 -fno-strict-overflow causes wrong code generation)
PR rtl-optimization/46315 * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare. * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function extracted from... * dce.c (delete_corresponding_reg_eq_notes): ...here. Rename into... (remove_reg_equal_equiv_notes_for_defs): ...this. (delete_unmarked_insns): Adjust to above renaming. * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes referring to registers set in the insns being moved, if any. * df-core.c (df_ref_dump): New function extracted from... (df_refs_chain_dump): ...here. Call it. (df_regs_chain_dump): Likewise. * df-problems.c (df_chain_dump): Print 'e' for uses in notes. * df-scan.c (df_scan_start_dump): Likewise. Fix long line. From-SVN: r166827
Diffstat (limited to 'gcc/df-problems.c')
-rw-r--r--gcc/df-problems.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/df-problems.c b/gcc/df-problems.c
index 3f5627f..559af91 100644
--- a/gcc/df-problems.c
+++ b/gcc/df-problems.c
@@ -109,10 +109,13 @@ df_chain_dump (struct df_link *link, FILE *file)
for (; link; link = link->next)
{
fprintf (file, "%c%d(bb %d insn %d) ",
- DF_REF_REG_DEF_P (link->ref) ? 'd' : 'u',
+ DF_REF_REG_DEF_P (link->ref)
+ ? 'd'
+ : (DF_REF_FLAGS (link->ref) & DF_REF_IN_NOTE) ? 'e' : 'u',
DF_REF_ID (link->ref),
DF_REF_BBNO (link->ref),
- DF_REF_IS_ARTIFICIAL (link->ref) ? -1 : DF_REF_INSN_UID (link->ref));
+ DF_REF_IS_ARTIFICIAL (link->ref)
+ ? -1 : DF_REF_INSN_UID (link->ref));
}
fprintf (file, "}");
}