OSDN Git Service

[X86] Convert esp-relative movs of function arguments into pushes, step 1
authorMichael Kuperstein <michael.m.kuperstein@intel.com>
Tue, 9 Dec 2014 06:10:44 +0000 (06:10 +0000)
committerMichael Kuperstein <michael.m.kuperstein@intel.com>
Tue, 9 Dec 2014 06:10:44 +0000 (06:10 +0000)
commit77c1b73211b4277820d87275d102933e4cd7ee10
tree07adf10122657accb6aeb9e18cd13a34ca298f4f
parent2959baffd2eab5f34893895a3e21e30dfdf2195b
[X86] Convert esp-relative movs of function arguments into pushes, step 1

This handles the simplest case for mov -> push conversion:
1. x86-32 calling convention, everything is passed through the stack.
2. There is no reserved call frame.
3. Only registers or immediates are pushed, no attempt to combine a mem-reg-mem sequence into a single PUSHmm.

Differential Revision: http://reviews.llvm.org/D6503

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223757 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FrameLowering.cpp
lib/Target/X86/X86FrameLowering.h
test/CodeGen/X86/force-align-stack-alloca.ll
test/CodeGen/X86/inalloca-ctor.ll
test/CodeGen/X86/inalloca-invoke.ll
test/CodeGen/X86/inalloca-stdcall.ll
test/CodeGen/X86/mem-intrin-base-reg.ll
test/CodeGen/X86/movtopush.ll [new file with mode: 0644]