#include "X86.h"
#include "X86InstrBuilder.h"
#include "X86MachineFunctionInfo.h"
#include "X86RegisterInfo.h"
#include "X86Subtarget.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/Function.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
usingnamespacellvm;
#define DEBUG_TYPE …
namespace {
class X86ArgumentStackSlotPass : public MachineFunctionPass { … };
}
char X86ArgumentStackSlotPass::ID = …;
INITIALIZE_PASS(…)
FunctionPass *llvm::createX86ArgumentStackSlotPass() { … }
static Register getArgBaseReg(MachineFunction &MF) { … }
bool X86ArgumentStackSlotPass::runOnMachineFunction(MachineFunction &MF) { … }