70 lines
2.3 KiB
Diff
70 lines
2.3 KiB
Diff
|
From b1fc91cda7c15264116f3dde6944ead149123653 Mon Sep 17 00:00:00 2001
|
||
|
From: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
|
||
|
Date: Mon, 15 Jan 2018 11:28:44 +0000
|
||
|
Subject: [PATCH 02/13] i386: Use reference of struct ix86_frame to avoid copy
|
||
|
|
||
|
When there is no need to make a copy of ix86_frame, we can use reference
|
||
|
of struct ix86_frame to avoid copy.
|
||
|
|
||
|
Backport from mainline
|
||
|
2017-11-06 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
|
||
|
* config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
|
||
|
of struct ix86_frame.
|
||
|
(ix86_initial_elimination_offset): Likewise.
|
||
|
(ix86_expand_split_stack_prologue): Likewise.
|
||
|
---
|
||
|
gcc/config/i386/i386.c | 8 +++-----
|
||
|
1 file changed, 3 insertions(+), 5 deletions(-)
|
||
|
|
||
|
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
|
||
|
index a1ff32b648b..13ebf107e90 100644
|
||
|
--- a/gcc/config/i386/i386.c
|
||
|
+++ b/gcc/config/i386/i386.c
|
||
|
@@ -10887,7 +10887,6 @@ symbolic_reference_mentioned_p (rtx op)
|
||
|
bool
|
||
|
ix86_can_use_return_insn_p (void)
|
||
|
{
|
||
|
- struct ix86_frame frame;
|
||
|
|
||
|
if (! reload_completed || frame_pointer_needed)
|
||
|
return 0;
|
||
|
@@ -10898,7 +10897,7 @@ ix86_can_use_return_insn_p (void)
|
||
|
return 0;
|
||
|
|
||
|
ix86_compute_frame_layout ();
|
||
|
- frame = cfun->machine->frame;
|
||
|
+ struct ix86_frame &frame = cfun->machine->frame;
|
||
|
return (frame.stack_pointer_offset == UNITS_PER_WORD
|
||
|
&& (frame.nregs + frame.nsseregs) == 0);
|
||
|
}
|
||
|
@@ -11310,7 +11309,7 @@ HOST_WIDE_INT
|
||
|
ix86_initial_elimination_offset (int from, int to)
|
||
|
{
|
||
|
ix86_compute_frame_layout ();
|
||
|
- struct ix86_frame frame = cfun->machine->frame;
|
||
|
+ struct ix86_frame &frame = cfun->machine->frame;
|
||
|
|
||
|
if (from == ARG_POINTER_REGNUM && to == HARD_FRAME_POINTER_REGNUM)
|
||
|
return frame.hard_frame_pointer_offset;
|
||
|
@@ -13821,7 +13820,6 @@ static GTY(()) rtx split_stack_fn_large;
|
||
|
void
|
||
|
ix86_expand_split_stack_prologue (void)
|
||
|
{
|
||
|
- struct ix86_frame frame;
|
||
|
HOST_WIDE_INT allocate;
|
||
|
unsigned HOST_WIDE_INT args_size;
|
||
|
rtx_code_label *label;
|
||
|
@@ -13834,7 +13832,7 @@ ix86_expand_split_stack_prologue (void)
|
||
|
|
||
|
ix86_finalize_stack_realign_flags ();
|
||
|
ix86_compute_frame_layout ();
|
||
|
- frame = cfun->machine->frame;
|
||
|
+ struct ix86_frame &frame = cfun->machine->frame;
|
||
|
allocate = frame.stack_pointer_offset - INCOMING_FRAME_SP_OFFSET;
|
||
|
|
||
|
/* This is the label we will branch to if we have enough stack
|
||
|
--
|
||
|
2.16.3
|
||
|
|