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

Matt Arsenault arsenm2 at gmail.com
Fri Apr 25 10:08:13 PDT 2014


On Apr 25, 2014, at 9:24 AM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:

> testcase?
> 

There’s no functionality change since currently malloc / free is assumed to only use address space 0. I’m just gradually trying to get rid of the default address space arguments in more places.



> 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
> _______________________________________________
> 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