i386: More 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 * config/i386/i386.c (ix86_expand_prologue): Use reference of struct ix86_frame. (ix86_expand_epilogue): Likewise. From-SVN: r256695
This commit is contained in:
parent
ed493f2709
commit
d031a3aaf5
|
@ -1,3 +1,10 @@
|
||||||
|
2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
* config/i386/i386.c (ix86_expand_prologue): Use reference of
|
||||||
|
struct ix86_frame.
|
||||||
|
(ix86_expand_epilogue): Likewise.
|
||||||
|
|
||||||
2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
|
2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
Backport from mainline
|
Backport from mainline
|
||||||
|
|
|
@ -13667,7 +13667,6 @@ ix86_expand_prologue (void)
|
||||||
{
|
{
|
||||||
struct machine_function *m = cfun->machine;
|
struct machine_function *m = cfun->machine;
|
||||||
rtx insn, t;
|
rtx insn, t;
|
||||||
struct ix86_frame frame;
|
|
||||||
HOST_WIDE_INT allocate;
|
HOST_WIDE_INT allocate;
|
||||||
bool int_registers_saved;
|
bool int_registers_saved;
|
||||||
bool sse_registers_saved;
|
bool sse_registers_saved;
|
||||||
|
@ -13691,7 +13690,7 @@ ix86_expand_prologue (void)
|
||||||
m->fs.sp_valid = true;
|
m->fs.sp_valid = true;
|
||||||
|
|
||||||
ix86_compute_frame_layout ();
|
ix86_compute_frame_layout ();
|
||||||
frame = m->frame;
|
struct ix86_frame &frame = cfun->machine->frame;
|
||||||
|
|
||||||
if (!TARGET_64BIT && ix86_function_ms_hook_prologue (current_function_decl))
|
if (!TARGET_64BIT && ix86_function_ms_hook_prologue (current_function_decl))
|
||||||
{
|
{
|
||||||
|
@ -14354,13 +14353,12 @@ ix86_expand_epilogue (int style)
|
||||||
{
|
{
|
||||||
struct machine_function *m = cfun->machine;
|
struct machine_function *m = cfun->machine;
|
||||||
struct machine_frame_state frame_state_save = m->fs;
|
struct machine_frame_state frame_state_save = m->fs;
|
||||||
struct ix86_frame frame;
|
|
||||||
bool restore_regs_via_mov;
|
bool restore_regs_via_mov;
|
||||||
bool using_drap;
|
bool using_drap;
|
||||||
|
|
||||||
ix86_finalize_stack_realign_flags ();
|
ix86_finalize_stack_realign_flags ();
|
||||||
ix86_compute_frame_layout ();
|
ix86_compute_frame_layout ();
|
||||||
frame = m->frame;
|
struct ix86_frame &frame = cfun->machine->frame;
|
||||||
|
|
||||||
m->fs.sp_valid = (!frame_pointer_needed
|
m->fs.sp_valid = (!frame_pointer_needed
|
||||||
|| (crtl->sp_is_unchanging
|
|| (crtl->sp_is_unchanging
|
||||||
|
|
Loading…
Reference in New Issue