diff options
author | Richard Henderson <rth@redhat.com> | 2010-12-17 14:51:25 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2010-12-17 14:51:25 -0800 |
commit | f90333ebe7dd773947e781f6f4a893b882f25570 (patch) | |
tree | f7a05b02bc4098bbf2b5fcbc3ebc2ba1138a72ee | |
parent | fed2b1017993c0db4fb6788bd83870d289e84827 (diff) | |
download | gcc-f90333ebe7dd773947e781f6f4a893b882f25570.zip gcc-f90333ebe7dd773947e781f6f4a893b882f25570.tar.gz gcc-f90333ebe7dd773947e781f6f4a893b882f25570.tar.bz2 |
Continue searching in find_oldest_value_reg on class match failure.
From-SVN: r168001
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/regcprop.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 944f806..37890e6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-12-17 Richard Henderson <rth@redhat.com> + + * regcprop.c (find_oldest_value_reg): Continue search instead of + failing if an element in the copy chain is of the wrong regclass. + 2010-12-17 Paolo Bonzini <bonzini@gnu.org> PR c/20385 diff --git a/gcc/regcprop.c b/gcc/regcprop.c index 88f9226..0f0dfb3 100644 --- a/gcc/regcprop.c +++ b/gcc/regcprop.c @@ -457,7 +457,7 @@ find_oldest_value_reg (enum reg_class cl, rtx reg, struct value_data *vd) rtx new_rtx; if (!in_hard_reg_set_p (reg_class_contents[cl], mode, i)) - return NULL_RTX; + continue; new_rtx = maybe_mode_change (oldmode, vd->e[regno].mode, mode, i, regno); if (new_rtx) |