<p dir="ltr">Yeah sorry about that, svn screw up. </p>
<div class="gmail_quote">On Oct 24, 2012 12:16 PM, "Rafael Espíndola" <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 24 October 2012 13:20, Micah Villmow <<a href="mailto:villmow@gmail.com">villmow@gmail.com</a>> wrote:<br>
> Author: mvillmow<br>
> Date: Wed Oct 24 12:20:04 2012<br>
> New Revision: 166591<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=166591&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=166591&view=rev</a><br>
> Log:<br>
> Delete a directory that wasn't supposed to be checked in yet.<br>
<br>
The patch does quiet a bit more than that :-)<br>
<br>
> Removed:<br>
>     llvm/trunk/test/Other/AddressSpace/<br>
> Modified:<br>
>     llvm/trunk/examples/ExceptionDemo/ExceptionDemo.cpp<br>
>     llvm/trunk/include/llvm/Type.h<br>
>     llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp<br>
>     llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp<br>
>     llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp<br>
>     llvm/trunk/lib/Transforms/Instrumentation/ProfilingUtils.cpp<br>
>     llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp<br>
>     llvm/trunk/lib/Transforms/Scalar/SROA.cpp<br>
>     llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp<br>
>     llvm/trunk/lib/VMCore/Constants.cpp<br>
>     llvm/trunk/lib/VMCore/Type.cpp<br>
>     llvm/trunk/lib/VMCore/Verifier.cpp<br>
><br>
> Modified: llvm/trunk/examples/ExceptionDemo/ExceptionDemo.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/ExceptionDemo/ExceptionDemo.cpp?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/ExceptionDemo/ExceptionDemo.cpp?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/examples/ExceptionDemo/ExceptionDemo.cpp (original)<br>
> +++ llvm/trunk/examples/ExceptionDemo/ExceptionDemo.cpp Wed Oct 24 12:20:04 2012<br>
> @@ -1268,7 +1268,7 @@<br>
>    llvm::Value *unwindExceptionClass =<br>
>      builder.CreateLoad(builder.CreateStructGEP(<br>
>               builder.CreatePointerCast(unwindException,<br>
> -                                       ourUnwindExceptionType->getPointerTo()),<br>
> +                                       ourUnwindExceptionType->getPointerTo(0)),<br>
>                                                 0));<br>
><br>
>    // Branch to the externalExceptionBlock if the exception is foreign or<br>
><br>
> Modified: llvm/trunk/include/llvm/Type.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Type.h?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Type.h?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/include/llvm/Type.h (original)<br>
> +++ llvm/trunk/include/llvm/Type.h Wed Oct 24 12:20:04 2012<br>
> @@ -389,10 +389,16 @@<br>
>    static PointerType *getInt32PtrTy(LLVMContext &C, unsigned AS = 0);<br>
>    static PointerType *getInt64PtrTy(LLVMContext &C, unsigned AS = 0);<br>
><br>
> -  /// getPointerTo - Return a pointer to the current type.  This is equivalent<br>
> -  /// to PointerType::get(Foo, AddrSpace).<br>
> -  PointerType *getPointerTo(unsigned AddrSpace = 0);<br>
> +  /// getPointerTo - Return a pointer to the current type for the given address space.<br>
> +  /// This is equivalent to PointerType::get(Foo, AddrSpace).<br>
> +  PointerType *getPointerTo(unsigned AddrSpace);<br>
> +<br>
> +  /// getPointerTo - Return a pointer to the current type for the address space<br>
> +  /// space of the passed in type.<br>
> +  PointerType *getPointerTo(const Type *Ty);<br>
><br>
> +  /// getPointerTo - Retrun a pointer to the current type.<br>
> +  PointerType *getPointerTo();<br>
>  private:<br>
>    /// isSizedDerivedType - Derived types like structures and arrays are sized<br>
>    /// iff all of the members of the type are sized as well.  Since asking for<br>
><br>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (original)<br>
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Wed Oct 24 12:20:04 2012<br>
> @@ -2068,7 +2068,7 @@<br>
>    // Also pass the return address of the remainder.<br>
>    SDValue FIPtr = DAG.CreateStackTemporary(RetVT);<br>
>    Entry.Node = FIPtr;<br>
> -  Entry.Ty = RetTy->getPointerTo();<br>
> +  Entry.Ty = RetTy->getPointerTo(0);<br>
>    Entry.isSExt = isSigned;<br>
>    Entry.isZExt = !isSigned;<br>
>    Args.push_back(Entry);<br>
><br>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (original)<br>
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp Wed Oct 24 12:20:04 2012<br>
> @@ -2320,7 +2320,7 @@<br>
><br>
>    // Also pass the address of the overflow check.<br>
>    Entry.Node = Temp;<br>
> -  Entry.Ty = PtrTy->getPointerTo();<br>
> +  Entry.Ty = PtrTy->getPointerTo(0);<br>
>    Entry.isSExt = true;<br>
>    Entry.isZExt = false;<br>
>    Args.push_back(Entry);<br>
><br>
> Modified: llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp (original)<br>
> +++ llvm/trunk/lib/Transforms/Instrumentation/GCOVProfiling.cpp Wed Oct 24 12:20:04 2012<br>
> @@ -586,8 +586,8 @@<br>
>    Type *Int32Ty = Type::getInt32Ty(*Ctx);<br>
>    Type *Int64Ty = Type::getInt64Ty(*Ctx);<br>
>    Type *Args[] = {<br>
> -    Int32Ty->getPointerTo(),                // uint32_t *predecessor<br>
> -    Int64Ty->getPointerTo()->getPointerTo() // uint64_t **counters<br>
> +    Int32Ty->getPointerTo(Int32Ty),                // uint32_t *predecessor<br>
> +    Int64Ty->getPointerTo(Int64Ty)->getPointerTo(Int64Ty) // uint64_t **counters<br>
>    };<br>
>    FunctionType *FTy = FunctionType::get(Type::getVoidTy(*Ctx), Args, false);<br>
>    return M->getOrInsertFunction("__llvm_gcov_indirect_counter_increment", FTy);<br>
> @@ -733,7 +733,8 @@<br>
>    Value *GEP = Builder.CreateGEP(Arg, ZExtPred);<br>
>    Value *Counter = Builder.CreateLoad(GEP, "counter");<br>
>    Cond = Builder.CreateICmpEQ(Counter,<br>
> -                              Constant::getNullValue(Int64Ty->getPointerTo()));<br>
> +                              Constant::getNullValue(<br>
> +                                Int64Ty->getPointerTo(Counter->getType())));<br>
>    Builder.CreateCondBr(Cond, Exit, CounterEnd);<br>
><br>
>    // ++*counter;<br>
><br>
> Modified: llvm/trunk/lib/Transforms/Instrumentation/ProfilingUtils.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/ProfilingUtils.cpp?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/ProfilingUtils.cpp?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/lib/Transforms/Instrumentation/ProfilingUtils.cpp (original)<br>
> +++ llvm/trunk/lib/Transforms/Instrumentation/ProfilingUtils.cpp Wed Oct 24 12:20:04 2012<br>
> @@ -134,7 +134,8 @@<br>
>    // types.<br>
>    Type *GlobalDtorElems[2] = {<br>
>      Type::getInt32Ty(Mod->getContext()),<br>
> -    FunctionType::get(Type::getVoidTy(Mod->getContext()), false)->getPointerTo()<br>
> +    FunctionType::get(Type::getVoidTy(Mod->getContext()), false)<br>
> +      ->getPointerTo()<br>
>    };<br>
>    StructType *GlobalDtorElemTy =<br>
>        StructType::get(Mod->getContext(), GlobalDtorElems, false);<br>
><br>
> Modified: llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp (original)<br>
> +++ llvm/trunk/lib/Transforms/Instrumentation/ThreadSanitizer.cpp Wed Oct 24 12:20:04 2012<br>
> @@ -375,7 +375,7 @@<br>
>      const size_t ByteSize = 1 << Idx;<br>
>      const size_t BitSize = ByteSize * 8;<br>
>      Type *Ty = Type::getIntNTy(IRB.getContext(), BitSize);<br>
> -    Type *PtrTy = Ty->getPointerTo();<br>
> +    Type *PtrTy = Ty->getPointerTo(Addr->getType());<br>
>      Value *Args[] = {IRB.CreatePointerCast(Addr, PtrTy),<br>
>                       createOrdering(&IRB, LI->getOrdering())};<br>
>      CallInst *C = CallInst::Create(TsanAtomicLoad[Idx],<br>
> @@ -390,7 +390,7 @@<br>
>      const size_t ByteSize = 1 << Idx;<br>
>      const size_t BitSize = ByteSize * 8;<br>
>      Type *Ty = Type::getIntNTy(IRB.getContext(), BitSize);<br>
> -    Type *PtrTy = Ty->getPointerTo();<br>
> +    Type *PtrTy = Ty->getPointerTo(Addr->getType());<br>
>      Value *Args[] = {IRB.CreatePointerCast(Addr, PtrTy),<br>
>                       IRB.CreateIntCast(SI->getValueOperand(), Ty, false),<br>
>                       createOrdering(&IRB, SI->getOrdering())};<br>
><br>
> Modified: llvm/trunk/lib/Transforms/Scalar/SROA.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SROA.cpp?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SROA.cpp?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/lib/Transforms/Scalar/SROA.cpp (original)<br>
> +++ llvm/trunk/lib/Transforms/Scalar/SROA.cpp Wed Oct 24 12:20:04 2012<br>
> @@ -2763,9 +2763,9 @@<br>
>                                : II.getRawDest()->getType();<br>
>      if (!EmitMemCpy) {<br>
>        if (IsVectorElement)<br>
> -        OtherPtrTy = VecTy->getElementType()->getPointerTo();<br>
> +        OtherPtrTy = VecTy->getElementType()->getPointerTo(OtherPtrTy);<br>
>        else if (IntTy && !IsWholeAlloca)<br>
> -        OtherPtrTy = SubIntTy->getPointerTo();<br>
> +        OtherPtrTy = SubIntTy->getPointerTo(OtherPtrTy);<br>
>        else<br>
>          OtherPtrTy = NewAI.getType();<br>
>      }<br>
><br>
> Modified: llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp (original)<br>
> +++ llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp Wed Oct 24 12:20:04 2012<br>
> @@ -777,7 +777,7 @@<br>
>          GetElementPtrInst *Gep2 = cast<GetElementPtrInst>(Gep->clone());<br>
>          Gep2->setOperand(NumOperands - 1, LastIndex);<br>
>          Ptr = Builder.Insert(Gep2);<br>
> -        Ptr = Builder.CreateBitCast(Ptr, StTy->getPointerTo());<br>
> +        Ptr = Builder.CreateBitCast(Ptr, StTy->getPointerTo(Ptr->getType()));<br>
>          Value *Val = getVectorValue(SI->getValueOperand());<br>
>          Builder.CreateStore(Val, Ptr)->setAlignment(Alignment);<br>
>          break;<br>
> @@ -806,7 +806,7 @@<br>
>          GetElementPtrInst *Gep2 = cast<GetElementPtrInst>(Gep->clone());<br>
>          Gep2->setOperand(NumOperands - 1, LastIndex);<br>
>          Ptr = Builder.Insert(Gep2);<br>
> -        Ptr = Builder.CreateBitCast(Ptr, RetTy->getPointerTo());<br>
> +        Ptr = Builder.CreateBitCast(Ptr, RetTy->getPointerTo(Ptr->getType()));<br>
>          LI = Builder.CreateLoad(Ptr);<br>
>          LI->setAlignment(Alignment);<br>
>          // Use this vector value for all users of the load.<br>
><br>
> Modified: llvm/trunk/lib/VMCore/Constants.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Constants.cpp?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Constants.cpp?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/lib/VMCore/Constants.cpp (original)<br>
> +++ llvm/trunk/lib/VMCore/Constants.cpp Wed Oct 24 12:20:04 2012<br>
> @@ -1673,7 +1673,7 @@<br>
>    // Note that a non-inbounds gep is used, as null isn't within any object.<br>
>    Type *AligningTy =<br>
>      StructType::get(Type::getInt1Ty(Ty->getContext()), Ty, NULL);<br>
> -  Constant *NullPtr = Constant::getNullValue(AligningTy->getPointerTo());<br>
> +  Constant *NullPtr = Constant::getNullValue(AligningTy->getPointerTo(Ty));<br>
>    Constant *Zero = ConstantInt::get(Type::getInt64Ty(Ty->getContext()), 0);<br>
>    Constant *One = ConstantInt::get(Type::getInt32Ty(Ty->getContext()), 1);<br>
>    Constant *Indices[2] = { Zero, One };<br>
><br>
> Modified: llvm/trunk/lib/VMCore/Type.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Type.cpp?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Type.cpp?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/lib/VMCore/Type.cpp (original)<br>
> +++ llvm/trunk/lib/VMCore/Type.cpp Wed Oct 24 12:20:04 2012<br>
> @@ -779,6 +779,28 @@<br>
>    return PointerType::get(this, addrs);<br>
>  }<br>
><br>
> +PointerType *Type::getPointerTo(const Type *Ty) {<br>
> +  unsigned AS = 0;<br>
> +  // For pointers, we return a new pointer based on the address space.<br>
> +  if (Ty->isPointerTy()) AS = Ty->getPointerAddressSpace();<br>
> +  // For vector of pointers, we return a new pointer based on the<br>
> +  // address space of the element pointer type.<br>
> +  if (Ty->isVectorTy())<br>
> +    AS = Ty->getVectorElementType()->getPointerAddressSpace();<br>
> +  // Otherwise return a pointer based on the default address space<br>
> +  // since we want a pointer to the current type without having<br>
> +  // a type that can give us the correct address space.<br>
> +  // An example of this occuring is that you want to get a pointer to<br>
> +  // all of the arguments in a function. However, the PointerType<br>
> +  // for a non-pointer type cannot be determined by the type, so<br>
> +  // the default value is used.<br>
> +  return getPointerTo(AS);<br>
> +}<br>
> +<br>
> +PointerType *Type::getPointerTo() {<br>
> +  return getPointerTo(this);<br>
> +}<br>
> +<br>
>  bool PointerType::isValidElementType(Type *ElemTy) {<br>
>    return !ElemTy->isVoidTy() && !ElemTy->isLabelTy() &&<br>
>           !ElemTy->isMetadataTy();<br>
><br>
> Modified: llvm/trunk/lib/VMCore/Verifier.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Verifier.cpp?rev=166591&r1=166590&r2=166591&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Verifier.cpp?rev=166591&r1=166590&r2=166591&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/lib/VMCore/Verifier.cpp (original)<br>
> +++ llvm/trunk/lib/VMCore/Verifier.cpp Wed Oct 24 12:20:04 2012<br>
> @@ -434,7 +434,8 @@<br>
>      if (ArrayType *ATy = dyn_cast<ArrayType>(GV.getType())) {<br>
>        StructType *STy = dyn_cast<StructType>(ATy->getElementType());<br>
>        PointerType *FuncPtrTy =<br>
> -          FunctionType::get(Type::getVoidTy(*Context), false)->getPointerTo();<br>
> +          FunctionType::get(Type::getVoidTy(*Context), false)<br>
> +          ->getPointerTo(GV.getType());<br>
>        Assert1(STy && STy->getNumElements() == 2 &&<br>
>                STy->getTypeAtIndex(0u)->isIntegerTy(32) &&<br>
>                STy->getTypeAtIndex(1) == FuncPtrTy,<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>