From f90333ebe7dd773947e781f6f4a893b882f25570 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Fri, 17 Dec 2010 14:51:25 -0800 Subject: [PATCH] Continue searching in find_oldest_value_reg on class match failure. From-SVN: r168001 --- gcc/ChangeLog | 5 +++++ gcc/regcprop.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 944f8069d72..37890e62f30 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-12-17 Richard Henderson + + * 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 PR c/20385 diff --git a/gcc/regcprop.c b/gcc/regcprop.c index 88f9226bb27..0f0dfb3ce78 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)