diff options
author | Jan Hubicka <jh@suse.cz> | 2008-02-19 18:11:12 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2008-02-19 17:11:12 +0000 |
commit | 9d5cee3d87ec186ad3a2725e0318d37a4b7a3d68 (patch) | |
tree | 01ef727bb86f0fcacb740c4500838460d0957f3e | |
parent | 8723e2fedf070eeea2d16e68f4baf2295d9a94e8 (diff) | |
download | gcc-9d5cee3d87ec186ad3a2725e0318d37a4b7a3d68.tar.gz |
re PR rtl-optimization/34408 (Invalid RTL sharing with -fsee and inline functions)
PR rtl-optimization/34408
* see.c (see_def_extension_not_merged): Copy subreg so we don't have invalid sharing.
From-SVN: r132440
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/see.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 158984452e3..4f53e48ccf1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2008-02-19 Jan Hubicka <jh@suse.cz> + PR rtl-optimization/34408 + * see.c (see_def_extension_not_merged): Copy subreg so we don't have invalid sharing. + +2008-02-19 Jan Hubicka <jh@suse.cz> + PR middle-end/28779 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of call_expr. diff --git a/gcc/see.c b/gcc/see.c index 8191b2d8103..d932f51a266 100644 --- a/gcc/see.c +++ b/gcc/see.c @@ -2508,7 +2508,7 @@ see_def_extension_not_merged (struct see_ref_s *curr_ref_s, rtx def_se) d.to = new_pseudo_reg; note_uses (&PATTERN (ref_copy), see_replace_src, &d); /* Step b: Replace every instance of dest_reg with the subreg. */ - ref_copy = replace_rtx (ref_copy, dest_reg, subreg); + ref_copy = replace_rtx (ref_copy, dest_reg, copy_rtx (subreg)); /* Step c: Replace every use of the new pseudo register back to dest_real_reg. */ |