aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2019-10-02 21:19:35 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2019-10-02 21:19:35 +0000
commitaa29ed6db6d409b54e552830230205a7b4da0d4d (patch)
treee19f20a3e6079aa3aae5cc77c8e1dcab746e1be8 /gcc
parentb7c41230322051912d979e132c52100158745b73 (diff)
downloadgcc-aa29ed6db6d409b54e552830230205a7b4da0d4d.zip
gcc-aa29ed6db6d409b54e552830230205a7b4da0d4d.tar.gz
gcc-aa29ed6db6d409b54e552830230205a7b4da0d4d.tar.bz2
Fix ALL_REGS thinko in initialisation of function_used_regs
My change to the -fipa-ra bookkeeping used ALL_REGS as the supposedly safe default assumption, but ALL_REGS isn't literally all registers, just a close approximation. This caused a bootstrap failure on arm-linux-gnu, where the condition code register isn't in ALL_REGS and so was being masked out of some call-clobbered sets. 2019-10-02 Richard Sandiford <richard.sandiford@arm.com> gcc/ * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET instead of reg_class_contents[ALL_REGS]. From-SVN: r276489
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cgraph.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c7773c5..fb0c366 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
+
+ * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET
+ instead of reg_class_contents[ALL_REGS].
+
2019-09-30 Jason Merrill <jason@redhat.com>
Add some hash_map_safe_* functions like vec_safe_*.
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 7748cef..0c3c6e7 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -1866,7 +1866,7 @@ cgraph_node::rtl_info (const_tree decl)
if (node->rtl == NULL)
{
node->rtl = ggc_cleared_alloc<cgraph_rtl_info> ();
- node->rtl->function_used_regs = reg_class_contents[ALL_REGS];
+ SET_HARD_REG_SET (node->rtl->function_used_regs);
}
return node->rtl;
}