From b21a62b6246d3344cf74c79965523e4f59db7459 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 30 Sep 2019 16:21:44 +0000 Subject: [PATCH] Remove global call sets: shrink-wrap.c This is a straight replacement of "calls we can clobber without saving them first". 2019-09-30 Richard Sandiford gcc/ * shrink-wrap.c: Include function-abi.h. (requires_stack_frame_p): Use crtl->abi to test whether the current function can use a register without saving it first. From-SVN: r276337 --- gcc/ChangeLog | 6 ++++++ gcc/shrink-wrap.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6d2d20f..c47da4c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2019-09-30 Richard Sandiford + * shrink-wrap.c: Include function-abi.h. + (requires_stack_frame_p): Use crtl->abi to test whether the + current function can use a register without saving it first. + +2019-09-30 Richard Sandiford + * sel-sched-ir.h (_def::crosses_call): Replace with... (_def::crossed_call_abis): ..this new field. (def_list_add): Take a mask of ABIs instead of a crosses_call diff --git a/gcc/shrink-wrap.c b/gcc/shrink-wrap.c index 0186966..2dc92c3 100644 --- a/gcc/shrink-wrap.c +++ b/gcc/shrink-wrap.c @@ -43,7 +43,7 @@ along with GCC; see the file COPYING3. If not see #include "regcprop.h" #include "rtl-iter.h" #include "valtrack.h" - +#include "function-abi.h" /* Return true if INSN requires the stack frame to be set up. PROLOGUE_USED contains the hard registers used in the function @@ -76,7 +76,7 @@ requires_stack_frame_p (rtx_insn *insn, HARD_REG_SET prologue_used, } if (hard_reg_set_intersect_p (hardregs, prologue_used)) return true; - hardregs &= ~call_used_or_fixed_regs; + hardregs &= ~crtl->abi->full_reg_clobbers (); for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) if (TEST_HARD_REG_BIT (hardregs, regno) && df_regs_ever_live_p (regno)) -- 2.7.4