summaryrefslogtreecommitdiff
path: root/gcc/config/openbsd.opt
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-07-07 06:01:16 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-09-05 09:52:47 -0700
commit7f49864e51915d0b334af58bf5413bbc73b1da26 (patch)
treeb7f66846d1ff17beb934336ad0a965ee74acba27 /gcc/config/openbsd.opt
parentb0e3c082a4b51073d516d7e308e3720c482019ef (diff)
downloadgcc-hjl/pr81769/master.tar.gz
i386: Avoid stack realignment if possiblehjl/pr81769/master
ix86_finalize_stack_frame_flags has been extended to eliminate frame pointer when the new stack frame isn't needed with and without -maccumulate-outgoing-args as well as -fomit-frame-pointer. Since stack access with larger alignment may be optimized out, to decide if stack realignment is needed, we need to not only check for stack frame access, but also verify the alignment of stack frame access. Since alignment of memory access via arg_pointer is set up by caller, not by callee, we should find the maximum stack alignment from the stack frame access instructions via stack pointer and frame pointrer to avoid stack realignment when stack alignment needed is less than incoming stack boundary. gcc/ PR target/59501 PR target/81624 PR target/81769 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't realign stack if stack alignment needed is less than incoming stack boundary. gcc/testsuite/ PR target/59501 PR target/81624 PR target/81769 * gcc.target/i386/pr59501-4a.c: Remove xfail. * gcc.target/i386/pr81769-1a.c: New test. * gcc.target/i386/pr81769-1b.c: Likewise. * gcc.target/i386/pr81769-2.c: Likewise.
Diffstat (limited to 'gcc/config/openbsd.opt')
0 files changed, 0 insertions, 0 deletions