[llvm] r207019 - Don't use default address space arguments in GlobalOpt

Rafael EspĂ­ndola rafael.espindola at gmail.com
Fri Apr 25 09:24:51 PDT 2014


testcase?

On 23 April 2014 16:36, Matt Arsenault <Matthew.Arsenault at amd.com> wrote:
> Author: arsenm
> Date: Wed Apr 23 15:36:10 2014
> New Revision: 207019
>
> URL: http://llvm.org/viewvc/llvm-project?rev=207019&view=rev
> Log:
> Don't use default address space arguments in GlobalOpt
>
> Modified:
>     llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp
>
> Modified: llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp?rev=207019&r1=207018&r2=207019&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp Wed Apr 23 15:36:10 2014
> @@ -1170,10 +1170,13 @@ static Value *GetHeapSROAValue(Value *V,
>    } else if (PHINode *PN = dyn_cast<PHINode>(V)) {
>      // PN's type is pointer to struct.  Make a new PHI of pointer to struct
>      // field.
> -    StructType *ST = cast<StructType>(PN->getType()->getPointerElementType());
>
> +    PointerType *PTy = cast<PointerType>(PN->getType());
> +    StructType *ST = cast<StructType>(PTy->getElementType());
> +
> +    unsigned AS = PTy->getAddressSpace();
>      PHINode *NewPN =
> -     PHINode::Create(PointerType::getUnqual(ST->getElementType(FieldNo)),
> +      PHINode::Create(PointerType::get(ST->getElementType(FieldNo), AS),
>                       PN->getNumIncomingValues(),
>                       PN->getName()+".f"+Twine(FieldNo), PN);
>      Result = NewPN;
> @@ -1285,9 +1288,10 @@ static GlobalVariable *PerformHeapAllocS
>    std::vector<Value*> FieldGlobals;
>    std::vector<Value*> FieldMallocs;
>
> +  unsigned AS = GV->getType()->getPointerAddressSpace();
>    for (unsigned FieldNo = 0, e = STy->getNumElements(); FieldNo != e;++FieldNo){
>      Type *FieldTy = STy->getElementType(FieldNo);
> -    PointerType *PFieldTy = PointerType::getUnqual(FieldTy);
> +    PointerType *PFieldTy = PointerType::get(FieldTy, AS);
>
>      GlobalVariable *NGV =
>        new GlobalVariable(*GV->getParent(),
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list