From aa29ed6db6d409b54e552830230205a7b4da0d4d Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Wed, 2 Oct 2019 21:19:35 +0000 Subject: [PATCH] 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 gcc/ * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET instead of reg_class_contents[ALL_REGS]. From-SVN: r276489 --- gcc/ChangeLog | 5 +++++ gcc/cgraph.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) 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 + + * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET + instead of reg_class_contents[ALL_REGS]. + 2019-09-30 Jason Merrill 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 (); - node->rtl->function_used_regs = reg_class_contents[ALL_REGS]; + SET_HARD_REG_SET (node->rtl->function_used_regs); } return node->rtl; } -- 2.7.4