[llvm-commits] [llvm] r157218 - in /llvm/trunk: include/llvm/Intrinsics.td lib/VMCore/Function.cpp utils/TableGen/IntrinsicEmitter.cpp
Pete Cooper
peter_cooper at apple.com
Mon May 21 16:21:28 PDT 2012
Author: pete
Date: Mon May 21 18:21:28 2012
New Revision: 157218
URL: http://llvm.org/viewvc/llvm-project?rev=157218&view=rev
Log:
Added address space qualifier to intrinsic PointerType arguments.
Modified:
llvm/trunk/include/llvm/Intrinsics.td
llvm/trunk/lib/VMCore/Function.cpp
llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp
Modified: llvm/trunk/include/llvm/Intrinsics.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Intrinsics.td?rev=157218&r1=157217&r2=157218&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Intrinsics.td (original)
+++ llvm/trunk/include/llvm/Intrinsics.td Mon May 21 18:21:28 2012
@@ -63,11 +63,15 @@
ValueType VT = vt;
}
-class LLVMPointerType<LLVMType elty>
+class LLVMQualPointerType<LLVMType elty, int addrspace>
: LLVMType<iPTR>{
LLVMType ElTy = elty;
+ int AddrSpace = addrspace;
}
+class LLVMPointerType<LLVMType elty>
+ : LLVMQualPointerType<elty, 0>;
+
class LLVMAnyPointerType<LLVMType elty>
: LLVMType<iPTRAny>{
LLVMType ElTy = elty;
Modified: llvm/trunk/lib/VMCore/Function.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Function.cpp?rev=157218&r1=157217&r2=157218&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/Function.cpp (original)
+++ llvm/trunk/lib/VMCore/Function.cpp Mon May 21 18:21:28 2012
@@ -388,8 +388,11 @@
return VectorType::get(DecodeFixedType(NextElt, Infos, Tys, Context), 16);
case IIT_V32:
return VectorType::get(DecodeFixedType(NextElt, Infos, Tys, Context), 32);
- case IIT_PTR:
- return PointerType::getUnqual(DecodeFixedType(NextElt, Infos, Tys,Context));
+ case IIT_PTR: {
+ unsigned AddrSpace = Infos[NextElt++];
+ Type *PtrTy = DecodeFixedType(NextElt, Infos, Tys,Context);
+ return PointerType::get(PtrTy, AddrSpace);
+ }
case IIT_ARG:
case IIT_EXTEND_VEC_ARG:
case IIT_TRUNC_VEC_ARG: {
Modified: llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp?rev=157218&r1=157217&r2=157218&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp (original)
+++ llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp Mon May 21 18:21:28 2012
@@ -413,6 +413,12 @@
if (VT == MVT::iPTR) {
Sig.push_back(IIT_PTR);
+ unsigned AddrSpace = 0;
+ if (R->isSubClassOf("LLVMQualPointerType")) {
+ AddrSpace = R->getValueAsInt("AddrSpace");
+ assert(AddrSpace < 256 && "Address space exceeds 255");
+ }
+ Sig.push_back(AddrSpace);
return EncodeFixedType(R->getValueAsDef("ElTy"), NextArgNo, Sig);
}
More information about the llvm-commits
mailing list