diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2010-06-04 16:43:42 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2010-06-04 18:43:42 +0200 |
commit | 39e7207ad9ffdf6d8059a28be8c940e78ef0fe7c (patch) | |
tree | 2a10de1ed4ebf3dc4f8016918bf866e53a26e1d0 /gcc | |
parent | 0fa43fb73b386b98e9c92d85905633f81d0c326e (diff) | |
download | gcc-39e7207ad9ffdf6d8059a28be8c940e78ef0fe7c.zip gcc-39e7207ad9ffdf6d8059a28be8c940e78ef0fe7c.tar.gz gcc-39e7207ad9ffdf6d8059a28be8c940e78ef0fe7c.tar.bz2 |
re PR rtl-optimization/44013 (VTA produces wrong code)
PR rtl-optimization/44013
* sched-deps.c (add_dependence_list_and_free): Don't free lists
when processing debug insns.
From-SVN: r160281
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/sched-deps.c | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fcf8e96..142715b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2010-06-04 Alexandre Oliva <aoliva@redhat.com> + PR rtl-optimization/44013 + * sched-deps.c (add_dependence_list_and_free): Don't free lists + when processing debug insns. + PR debug/41371 * var-tracking.c (find_loc_in_1pdv): Mark initial value before recursing. Check that recursion is bounded. Rename inner var diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 556c38a..4577c8e 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -1407,7 +1407,10 @@ add_dependence_list_and_free (struct deps_desc *deps, rtx insn, rtx *listp, { rtx list, next; - if (deps->readonly) + /* We don't want to short-circuit dependencies involving debug + insns, because they may cause actual dependencies to be + disregarded. */ + if (deps->readonly || DEBUG_INSN_P (insn)) { add_dependence_list (insn, *listp, uncond, dep_type); return; |