mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 05:22:04 +00:00
Attributes Rewrite
Convert the internal representation of the Attributes class into a pointer to an opaque object that's uniqued by and stored in the LLVMContext object. The Attributes class then becomes a thin wrapper around this opaque object. Eventually, the internal representation will be expanded to include attributes that represent code generation options, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165917 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -41,9 +41,10 @@ Value *llvm::EmitStrLen(Value *Ptr, IRBuilder<> &B, const DataLayout *TD,
|
||||
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI[2];
|
||||
AWI[0] = AttributeWithIndex::get(1, Attributes::NoCapture);
|
||||
AWI[0] = AttributeWithIndex::get(M->getContext(), 1, Attributes::NoCapture);
|
||||
Attributes::AttrVal AVs[2] = { Attributes::ReadOnly, Attributes::NoUnwind };
|
||||
AWI[1] = AttributeWithIndex::get(~0u, ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
AWI[1] = AttributeWithIndex::get(M->getContext(), ~0u,
|
||||
ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
|
||||
LLVMContext &Context = B.GetInsertBlock()->getContext();
|
||||
Constant *StrLen = M->getOrInsertFunction("strlen", AttrListPtr::get(AWI),
|
||||
@@ -67,9 +68,10 @@ Value *llvm::EmitStrNLen(Value *Ptr, Value *MaxLen, IRBuilder<> &B,
|
||||
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI[2];
|
||||
AWI[0] = AttributeWithIndex::get(1, Attributes::NoCapture);
|
||||
AWI[0] = AttributeWithIndex::get(M->getContext(), 1, Attributes::NoCapture);
|
||||
Attributes::AttrVal AVs[2] = { Attributes::ReadOnly, Attributes::NoUnwind };
|
||||
AWI[1] = AttributeWithIndex::get(~0u, ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
AWI[1] = AttributeWithIndex::get(M->getContext(), ~0u,
|
||||
ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
|
||||
LLVMContext &Context = B.GetInsertBlock()->getContext();
|
||||
Constant *StrNLen = M->getOrInsertFunction("strnlen", AttrListPtr::get(AWI),
|
||||
@@ -95,7 +97,8 @@ Value *llvm::EmitStrChr(Value *Ptr, char C, IRBuilder<> &B,
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
Attributes::AttrVal AVs[2] = { Attributes::ReadOnly, Attributes::NoUnwind };
|
||||
AttributeWithIndex AWI =
|
||||
AttributeWithIndex::get(~0u, ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
AttributeWithIndex::get(M->getContext(), ~0u,
|
||||
ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
|
||||
Type *I8Ptr = B.getInt8PtrTy();
|
||||
Type *I32Ty = B.getInt32Ty();
|
||||
@@ -117,10 +120,11 @@ Value *llvm::EmitStrNCmp(Value *Ptr1, Value *Ptr2, Value *Len,
|
||||
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI[3];
|
||||
AWI[0] = AttributeWithIndex::get(1, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(2, Attributes::NoCapture);
|
||||
AWI[0] = AttributeWithIndex::get(M->getContext(), 1, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(M->getContext(), 2, Attributes::NoCapture);
|
||||
Attributes::AttrVal AVs[2] = { Attributes::ReadOnly, Attributes::NoUnwind };
|
||||
AWI[2] = AttributeWithIndex::get(~0u, ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
AWI[2] = AttributeWithIndex::get(M->getContext(), ~0u,
|
||||
ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
|
||||
LLVMContext &Context = B.GetInsertBlock()->getContext();
|
||||
Value *StrNCmp = M->getOrInsertFunction("strncmp", AttrListPtr::get(AWI),
|
||||
@@ -147,8 +151,8 @@ Value *llvm::EmitStrCpy(Value *Dst, Value *Src, IRBuilder<> &B,
|
||||
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI[2];
|
||||
AWI[0] = AttributeWithIndex::get(2, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(~0u, Attributes::NoUnwind);
|
||||
AWI[0] = AttributeWithIndex::get(M->getContext(), 2, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(M->getContext(), ~0u, Attributes::NoUnwind);
|
||||
Type *I8Ptr = B.getInt8PtrTy();
|
||||
Value *StrCpy = M->getOrInsertFunction(Name, AttrListPtr::get(AWI),
|
||||
I8Ptr, I8Ptr, I8Ptr, NULL);
|
||||
@@ -169,8 +173,8 @@ Value *llvm::EmitStrNCpy(Value *Dst, Value *Src, Value *Len,
|
||||
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI[2];
|
||||
AWI[0] = AttributeWithIndex::get(2, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(~0u, Attributes::NoUnwind);
|
||||
AWI[0] = AttributeWithIndex::get(M->getContext(), 2, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(M->getContext(), ~0u, Attributes::NoUnwind);
|
||||
Type *I8Ptr = B.getInt8PtrTy();
|
||||
Value *StrNCpy = M->getOrInsertFunction(Name, AttrListPtr::get(AWI),
|
||||
I8Ptr, I8Ptr, I8Ptr,
|
||||
@@ -193,7 +197,7 @@ Value *llvm::EmitMemCpyChk(Value *Dst, Value *Src, Value *Len, Value *ObjSize,
|
||||
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI;
|
||||
AWI = AttributeWithIndex::get(~0u, Attributes::NoUnwind);
|
||||
AWI = AttributeWithIndex::get(M->getContext(), ~0u, Attributes::NoUnwind);
|
||||
LLVMContext &Context = B.GetInsertBlock()->getContext();
|
||||
Value *MemCpy = M->getOrInsertFunction("__memcpy_chk",
|
||||
AttrListPtr::get(AWI),
|
||||
@@ -221,7 +225,8 @@ Value *llvm::EmitMemChr(Value *Ptr, Value *Val,
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI;
|
||||
Attributes::AttrVal AVs[2] = { Attributes::ReadOnly, Attributes::NoUnwind };
|
||||
AWI = AttributeWithIndex::get(~0u, ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
AWI = AttributeWithIndex::get(M->getContext(), ~0u,
|
||||
ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
LLVMContext &Context = B.GetInsertBlock()->getContext();
|
||||
Value *MemChr = M->getOrInsertFunction("memchr", AttrListPtr::get(AWI),
|
||||
B.getInt8PtrTy(),
|
||||
@@ -246,10 +251,11 @@ Value *llvm::EmitMemCmp(Value *Ptr1, Value *Ptr2,
|
||||
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI[3];
|
||||
AWI[0] = AttributeWithIndex::get(1, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(2, Attributes::NoCapture);
|
||||
AWI[0] = AttributeWithIndex::get(M->getContext(), 1, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(M->getContext(), 2, Attributes::NoCapture);
|
||||
Attributes::AttrVal AVs[2] = { Attributes::ReadOnly, Attributes::NoUnwind };
|
||||
AWI[2] = AttributeWithIndex::get(~0u, ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
AWI[2] = AttributeWithIndex::get(M->getContext(), ~0u,
|
||||
ArrayRef<Attributes::AttrVal>(AVs, 2));
|
||||
|
||||
LLVMContext &Context = B.GetInsertBlock()->getContext();
|
||||
Value *MemCmp = M->getOrInsertFunction("memcmp", AttrListPtr::get(AWI),
|
||||
@@ -325,8 +331,8 @@ Value *llvm::EmitPutS(Value *Str, IRBuilder<> &B, const DataLayout *TD,
|
||||
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI[2];
|
||||
AWI[0] = AttributeWithIndex::get(1, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(~0u, Attributes::NoUnwind);
|
||||
AWI[0] = AttributeWithIndex::get(M->getContext(), 1, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(M->getContext(), ~0u, Attributes::NoUnwind);
|
||||
|
||||
Value *PutS = M->getOrInsertFunction("puts", AttrListPtr::get(AWI),
|
||||
B.getInt32Ty(),
|
||||
@@ -347,8 +353,8 @@ Value *llvm::EmitFPutC(Value *Char, Value *File, IRBuilder<> &B,
|
||||
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI[2];
|
||||
AWI[0] = AttributeWithIndex::get(2, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(~0u, Attributes::NoUnwind);
|
||||
AWI[0] = AttributeWithIndex::get(M->getContext(), 2, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(M->getContext(), ~0u, Attributes::NoUnwind);
|
||||
Constant *F;
|
||||
if (File->getType()->isPointerTy())
|
||||
F = M->getOrInsertFunction("fputc", AttrListPtr::get(AWI),
|
||||
@@ -378,9 +384,9 @@ Value *llvm::EmitFPutS(Value *Str, Value *File, IRBuilder<> &B,
|
||||
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI[3];
|
||||
AWI[0] = AttributeWithIndex::get(1, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(2, Attributes::NoCapture);
|
||||
AWI[2] = AttributeWithIndex::get(~0u, Attributes::NoUnwind);
|
||||
AWI[0] = AttributeWithIndex::get(M->getContext(), 1, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(M->getContext(), 2, Attributes::NoCapture);
|
||||
AWI[2] = AttributeWithIndex::get(M->getContext(), ~0u, Attributes::NoUnwind);
|
||||
StringRef FPutsName = TLI->getName(LibFunc::fputs);
|
||||
Constant *F;
|
||||
if (File->getType()->isPointerTy())
|
||||
@@ -409,9 +415,9 @@ Value *llvm::EmitFWrite(Value *Ptr, Value *Size, Value *File,
|
||||
|
||||
Module *M = B.GetInsertBlock()->getParent()->getParent();
|
||||
AttributeWithIndex AWI[3];
|
||||
AWI[0] = AttributeWithIndex::get(1, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(4, Attributes::NoCapture);
|
||||
AWI[2] = AttributeWithIndex::get(~0u, Attributes::NoUnwind);
|
||||
AWI[0] = AttributeWithIndex::get(M->getContext(), 1, Attributes::NoCapture);
|
||||
AWI[1] = AttributeWithIndex::get(M->getContext(), 4, Attributes::NoCapture);
|
||||
AWI[2] = AttributeWithIndex::get(M->getContext(), ~0u, Attributes::NoUnwind);
|
||||
LLVMContext &Context = B.GetInsertBlock()->getContext();
|
||||
StringRef FWriteName = TLI->getName(LibFunc::fwrite);
|
||||
Constant *F;
|
||||
|
||||
Reference in New Issue
Block a user