diff options
author | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-26 21:01:57 +0000 |
---|---|---|
committer | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-26 21:01:57 +0000 |
commit | bc694d564384eb496a01037237da0c82d4fc5ab4 (patch) | |
tree | 06ba6c60df2ad67988dc916ce7e15f8feb0db86b /gcc/ira.c | |
parent | 16878d888f44259ff45d5037539f91358d4db8fe (diff) | |
download | gcc-bc694d564384eb496a01037237da0c82d4fc5ab4.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174309 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira.c')
-rw-r--r-- | gcc/ira.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ira.c b/gcc/ira.c index 358ad0a37b1..222d48eb1c4 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -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 |