forked from OSchip/llvm-project
parent
bf9d12ac8b
commit
2ca5e23403
|
@ -14,30 +14,32 @@
|
||||||
#include "llvm/DerivedTypes.h"
|
#include "llvm/DerivedTypes.h"
|
||||||
#include "llvm/Pass.h"
|
#include "llvm/Pass.h"
|
||||||
#include "llvm/CodeGen/MachineFunction.h"
|
#include "llvm/CodeGen/MachineFunction.h"
|
||||||
|
#include "llvm/CodeGen/MachineFunctionInfo.h"
|
||||||
|
|
||||||
class StackSlots : public FunctionPass {
|
namespace {
|
||||||
const TargetMachine &Target;
|
class StackSlots : public FunctionPass {
|
||||||
public:
|
const TargetMachine &Target;
|
||||||
StackSlots (const TargetMachine &T) : Target(T) {}
|
public:
|
||||||
|
StackSlots(const TargetMachine &T) : Target(T) {}
|
||||||
const char *getPassName() const {
|
|
||||||
return "Stack Slot Insertion for profiling code";
|
const char *getPassName() const {
|
||||||
}
|
return "Stack Slot Insertion for profiling code";
|
||||||
|
}
|
||||||
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
|
|
||||||
AU.setPreservesCFG();
|
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
|
||||||
}
|
AU.setPreservesCFG();
|
||||||
|
}
|
||||||
bool runOnFunction(Function &F) {
|
|
||||||
const Type *PtrInt = PointerType::get(Type::IntTy);
|
bool runOnFunction(Function &F) {
|
||||||
unsigned Size = Target.DataLayout.getTypeSize(PtrInt);
|
const Type *PtrInt = PointerType::get(Type::IntTy);
|
||||||
|
unsigned Size = Target.getTargetData().getTypeSize(PtrInt);
|
||||||
MachineFunction &mcInfo = MachineFunction::get(&F);
|
|
||||||
Value *V = Constant::getNullValue(Type::IntTy);
|
Value *V = Constant::getNullValue(Type::IntTy);
|
||||||
mcInfo.allocateLocalVar(Target, V, 2*Size);
|
MachineFunction::get(&F).getInfo()->allocateLocalVar(V, 2*Size);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
Pass *createStackSlotsPass(const TargetMachine &Target) {
|
Pass *createStackSlotsPass(const TargetMachine &Target) {
|
||||||
return new StackSlots(Target);
|
return new StackSlots(Target);
|
||||||
|
|
Loading…
Reference in New Issue