Commit b21a62b6 by Richard Sandiford Committed by Richard Sandiford

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  <richard.sandiford@arm.com>

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
parent 497b699b
2019-09-30 Richard Sandiford <richard.sandiford@arm.com> 2019-09-30 Richard Sandiford <richard.sandiford@arm.com>
* 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 <richard.sandiford@arm.com>
* sel-sched-ir.h (_def::crosses_call): Replace with... * sel-sched-ir.h (_def::crosses_call): Replace with...
(_def::crossed_call_abis): ..this new field. (_def::crossed_call_abis): ..this new field.
(def_list_add): Take a mask of ABIs instead of a crosses_call (def_list_add): Take a mask of ABIs instead of a crosses_call
......
...@@ -43,7 +43,7 @@ along with GCC; see the file COPYING3. If not see ...@@ -43,7 +43,7 @@ along with GCC; see the file COPYING3. If not see
#include "regcprop.h" #include "regcprop.h"
#include "rtl-iter.h" #include "rtl-iter.h"
#include "valtrack.h" #include "valtrack.h"
#include "function-abi.h"
/* Return true if INSN requires the stack frame to be set up. /* Return true if INSN requires the stack frame to be set up.
PROLOGUE_USED contains the hard registers used in the function 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, ...@@ -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)) if (hard_reg_set_intersect_p (hardregs, prologue_used))
return true; return true;
hardregs &= ~call_used_or_fixed_regs; hardregs &= ~crtl->abi->full_reg_clobbers ();
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
if (TEST_HARD_REG_BIT (hardregs, regno) if (TEST_HARD_REG_BIT (hardregs, regno)
&& df_regs_ever_live_p (regno)) && df_regs_ever_live_p (regno))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment