mirror of git://gcc.gnu.org/git/gcc.git
x86: Don't use get_frame_size when finalizing stack frame
get_frame_size () returns used stack slots during compilation, which may be optimized out later. Since ix86_find_max_used_stack_alignment is called by ix86_finalize_stack_frame_flags to check if stack frame is required, there is no need to call get_frame_size () which may give inaccurate final stack frame size. Tested on AVX512 machine configured with --with-arch=native --with-cpu=native gcc/ PR target/88483 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't use get_frame_size (). gcc/testsuite/ PR target/88483 * gcc.target/i386/stackalign/pr88483.c: New test. From-SVN: r267133
This commit is contained in:
parent
f961ec70ee
commit
4f472e636f
|
|
@ -1,3 +1,9 @@
|
||||||
|
2018-12-14 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR target/88483
|
||||||
|
* config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
|
||||||
|
use get_frame_size ().
|
||||||
|
|
||||||
2018-12-14 Andrew Stubbs <ams@codesourcery.com>
|
2018-12-14 Andrew Stubbs <ams@codesourcery.com>
|
||||||
|
|
||||||
* gcc/lra-int.h (lra_register_new_scratch_op): Add third parameter.
|
* gcc/lra-int.h (lra_register_new_scratch_op): Add third parameter.
|
||||||
|
|
|
||||||
|
|
@ -12876,7 +12876,6 @@ ix86_finalize_stack_frame_flags (void)
|
||||||
&& flag_exceptions
|
&& flag_exceptions
|
||||||
&& cfun->can_throw_non_call_exceptions)
|
&& cfun->can_throw_non_call_exceptions)
|
||||||
&& !ix86_frame_pointer_required ()
|
&& !ix86_frame_pointer_required ()
|
||||||
&& get_frame_size () == 0
|
|
||||||
&& ix86_nsaved_sseregs () == 0
|
&& ix86_nsaved_sseregs () == 0
|
||||||
&& ix86_varargs_gpr_size + ix86_varargs_fpr_size == 0)
|
&& ix86_varargs_gpr_size + ix86_varargs_fpr_size == 0)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2018-12-14 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR target/88483
|
||||||
|
* gcc.target/i386/stackalign/pr88483.c: New test.
|
||||||
|
|
||||||
2018-12-14 Eric Botcazou <ebotcazou@adacore.com>
|
2018-12-14 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
* gnat.dg/max_size.adb: New test.
|
* gnat.dg/max_size.adb: New test.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
|
||||||
|
/* { dg-options "-O2 -mavx2" } */
|
||||||
|
|
||||||
|
struct B
|
||||||
|
{
|
||||||
|
char a[12];
|
||||||
|
int b;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct B
|
||||||
|
f2 (void)
|
||||||
|
{
|
||||||
|
struct B x = {};
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* { dg-final { scan-assembler-not "and\[lq\]?\[^\\n\]*-\[0-9\]+,\[^\\n\]*sp" } } */
|
||||||
Loading…
Reference in New Issue