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.

Tested on arm-linux-gnueabihf (which now bootstraps) and applied
as obvious as r276489.  Sorry for the breakage...

Richard


2019-10-02  Richard Sandiford  <richard.sandif...@arm.com>

gcc/
        * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET
        instead of reg_class_contents[ALL_REGS].

Index: gcc/cgraph.c
===================================================================
--- gcc/cgraph.c        2019-10-02 14:11:33.275497853 +0100
+++ gcc/cgraph.c        2019-10-02 22:18:36.880570656 +0100
@@ -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;
 }

Reply via email to