mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00:00
land David Blaikie's patch to de-constify Type, with a few tweaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -61,7 +61,7 @@ namespace {
|
||||
private:
|
||||
bool IsNullValue(Value *V);
|
||||
Constant *GetFrameMap(Function &F);
|
||||
const Type* GetConcreteStackEntryType(Function &F);
|
||||
Type* GetConcreteStackEntryType(Function &F);
|
||||
void CollectRoots(Function &F);
|
||||
static GetElementPtrInst *CreateGEP(LLVMContext &Context,
|
||||
IRBuilder<> &B, Value *BasePtr,
|
||||
@ -190,7 +190,7 @@ ShadowStackGC::ShadowStackGC() : Head(0), StackEntryTy(0) {
|
||||
|
||||
Constant *ShadowStackGC::GetFrameMap(Function &F) {
|
||||
// doInitialization creates the abstract type of this value.
|
||||
const Type *VoidPtr = Type::getInt8PtrTy(F.getContext());
|
||||
Type *VoidPtr = Type::getInt8PtrTy(F.getContext());
|
||||
|
||||
// Truncate the ShadowStackDescriptor if some metadata is null.
|
||||
unsigned NumMeta = 0;
|
||||
@ -203,7 +203,7 @@ Constant *ShadowStackGC::GetFrameMap(Function &F) {
|
||||
}
|
||||
Metadata.resize(NumMeta);
|
||||
|
||||
const Type *Int32Ty = Type::getInt32Ty(F.getContext());
|
||||
Type *Int32Ty = Type::getInt32Ty(F.getContext());
|
||||
|
||||
Constant *BaseElts[] = {
|
||||
ConstantInt::get(Int32Ty, Roots.size(), false),
|
||||
@ -244,7 +244,7 @@ Constant *ShadowStackGC::GetFrameMap(Function &F) {
|
||||
return ConstantExpr::getGetElementPtr(GV, GEPIndices, 2);
|
||||
}
|
||||
|
||||
const Type* ShadowStackGC::GetConcreteStackEntryType(Function &F) {
|
||||
Type* ShadowStackGC::GetConcreteStackEntryType(Function &F) {
|
||||
// doInitialization creates the generic version of this type.
|
||||
std::vector<Type*> EltTys;
|
||||
EltTys.push_back(StackEntryTy);
|
||||
@ -282,7 +282,7 @@ bool ShadowStackGC::initializeCustomLowering(Module &M) {
|
||||
EltTys.push_back(PointerType::getUnqual(StackEntryTy));
|
||||
EltTys.push_back(FrameMapPtrTy);
|
||||
StackEntryTy->setBody(EltTys);
|
||||
const PointerType *StackEntryPtrTy = PointerType::getUnqual(StackEntryTy);
|
||||
PointerType *StackEntryPtrTy = PointerType::getUnqual(StackEntryTy);
|
||||
|
||||
// Get the root chain if it already exists.
|
||||
Head = M.getGlobalVariable("llvm_gc_root_chain");
|
||||
@ -373,7 +373,7 @@ bool ShadowStackGC::performCustomLowering(Function &F) {
|
||||
|
||||
// Build the constant map and figure the type of the shadow stack entry.
|
||||
Value *FrameMap = GetFrameMap(F);
|
||||
const Type *ConcreteStackEntryTy = GetConcreteStackEntryType(F);
|
||||
Type *ConcreteStackEntryTy = GetConcreteStackEntryType(F);
|
||||
|
||||
// Build the shadow stack entry at the very start of the function.
|
||||
BasicBlock::iterator IP = F.getEntryBlock().begin();
|
||||
|
Reference in New Issue
Block a user