[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