aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2011-06-09 23:38:35 +0000
committerHans-Peter Nilsson <hp@gcc.gnu.org>2011-06-09 23:38:35 +0000
commitc577822ec18dbe068fe0a3d974e64a5afc52f00d (patch)
treef60e8c57aa0950b9f89563791a88772e486bc936
parent54e1e4f75c2bbc1c27e133177ddcd6b39098281f (diff)
downloadgcc-c577822ec18dbe068fe0a3d974e64a5afc52f00d.zip
gcc-c577822ec18dbe068fe0a3d974e64a5afc52f00d.tar.gz
gcc-c577822ec18dbe068fe0a3d974e64a5afc52f00d.tar.bz2
re PR rtl-optimization/49154 (build fails on cris-elf in libgcc: ICE in setup_pressure_classes, at ira.c:902)
PR rtl-optimization/49154 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already is a matching slot in the hashtable, assign it to classes_ptr. From-SVN: r174868
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ira-costs.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f05ecfd..cd42b1a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,6 +1,11 @@
2011-06-10 Hans-Peter Nilsson <hp@axis.com>
PR rtl-optimization/49154
+ * ira-costs.c (setup_regno_cost_classes_by_mode): If there
+ already is a matching slot in the hashtable, assign it to
+ classes_ptr.
+
+ PR rtl-optimization/49154
* doc/tm.texi.in (Register Classes): Document rule for the narrowest
register classes.
* doc/tm.texi: Regenerate.
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c
index f517386..a22bb15 100644
--- a/gcc/ira-costs.c
+++ b/gcc/ira-costs.c
@@ -299,6 +299,8 @@ setup_regno_cost_classes_by_mode (int regno, enum machine_mode mode)
classes_ptr = setup_cost_classes (&classes);
*slot = classes_ptr;
}
+ else
+ classes_ptr = *slot;
cost_classes_mode_cache[mode] = (cost_classes_t) *slot;
}
regno_cost_classes[regno] = classes_ptr;