aboutsummaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2007-06-29 22:13:41 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2007-06-29 20:13:41 +0000
commitacff804059ca670f5a43b6f5ae2fca6dfc4b3697 (patch)
treeafd5c89d9831e8d4c725ca7a2cde430ca62f6d42 /gcc/cse.c
parent4e63b362a711b50ad75dcac2da73127503be2609 (diff)
downloadgcc-acff804059ca670f5a43b6f5ae2fca6dfc4b3697.zip
gcc-acff804059ca670f5a43b6f5ae2fca6dfc4b3697.tar.gz
gcc-acff804059ca670f5a43b6f5ae2fca6dfc4b3697.tar.bz2
re PR rtl-optimization/32372 (ICE in df_refs_verify, at df-scan.c:4065)
PR middle-end/32372 * cse.c (cse_insn): Avoid invalid sharing in between register note and the insn pattern. From-SVN: r126122
Diffstat (limited to 'gcc/cse.c')
-rw-r--r--gcc/cse.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 431a419..d333492 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -4181,7 +4181,7 @@ cse_insn (rtx insn, rtx libcall_insn)
canon_reg (XEXP (tem, 0), insn);
apply_change_group ();
src_eqv = fold_rtx (XEXP (tem, 0), insn);
- XEXP (tem, 0) = src_eqv;
+ XEXP (tem, 0) = copy_rtx (src_eqv);
df_notes_rescan (insn);
}
@@ -7012,7 +7012,7 @@ struct tree_opt_pass pass_cse =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- TODO_df_finish |
+ TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func |
TODO_ggc_collect |
TODO_verify_flow, /* todo_flags_finish */
@@ -7070,7 +7070,7 @@ struct tree_opt_pass pass_cse2 =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- TODO_df_finish |
+ TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func |
TODO_ggc_collect |
TODO_verify_flow, /* todo_flags_finish */