diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2011-05-26 21:01:57 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2011-05-26 21:01:57 +0000 |
commit | 574e418a27bf8e841df886a8156b9e1e6b362fc7 (patch) | |
tree | 06ba6c60df2ad67988dc916ce7e15f8feb0db86b /gcc | |
parent | 1eb2a14d1670a17b084e4fb33757a5fb6d7eefbd (diff) | |
download | gcc-574e418a27bf8e841df886a8156b9e1e6b362fc7.zip gcc-574e418a27bf8e841df886a8156b9e1e6b362fc7.tar.gz gcc-574e418a27bf8e841df886a8156b9e1e6b362fc7.tar.bz2 |
re PR rtl-optimization/49154 (build fails on cris-elf in libgcc: ICE in setup_pressure_classes, at ira.c:902)
2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/49154
* ira.c (setup_pressure_classes): Process class without sublcasses
as a candidate for pressure classes.
From-SVN: r174309
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ira.c | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 60553d5..8e487e4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-05-26 Vladimir Makarov <vmakarov@redhat.com> + + PR rtl-optimization/49154 + * ira.c (setup_pressure_classes): Process class without sublcasses + as a candidate for pressure classes. + 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com> PR rtl-optimization/48575 @@ -799,7 +799,12 @@ setup_pressure_classes (void) { if (ira_available_class_regs[cl] == 0) continue; - if (ira_available_class_regs[cl] != 1) + if (ira_available_class_regs[cl] != 1 + /* A register class without subclasses may contain a few + hard registers and movement between them is costly + (e.g. SPARC FPCC registers). We still should consider it + as a candidate for a pressure class. */ + && alloc_reg_class_subclasses[cl][0] != LIM_REG_CLASSES) { /* Check that the moves between any hard registers of the current class are not more expensive for a legal mode |