[llvm-commits] [llvm] r171303 - in /llvm/trunk: include/llvm/Analysis/MemoryBuiltins.h lib/Analysis/MemoryBuiltins.cpp
Nuno Lopes
nunoplopes at sapo.pt
Mon Dec 31 12:47:32 PST 2012
Commited along with r171325.
Thanks for the reminder!
Nuno
----- Original Message -----
> testcase?
>
> On 31 December 2012 11:23, Nuno Lopes <nunoplopes at sapo.pt> wrote:
>> Author: nlopes
>> Date: Mon Dec 31 10:23:48 2012
>> New Revision: 171303
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=171303&view=rev
>> Log:
>> add support for GlobalAlias to ObjectSizeOffsetVisitor
>>
>> Modified:
>> llvm/trunk/include/llvm/Analysis/MemoryBuiltins.h
>> llvm/trunk/lib/Analysis/MemoryBuiltins.cpp
>>
>> Modified: llvm/trunk/include/llvm/Analysis/MemoryBuiltins.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/MemoryBuiltins.h?rev=171303&r1=171302&r2=171303&view=diff
>> ==============================================================================
>> --- llvm/trunk/include/llvm/Analysis/MemoryBuiltins.h (original)
>> +++ llvm/trunk/include/llvm/Analysis/MemoryBuiltins.h Mon Dec 31 10:23:48
>> 2012
>> @@ -191,6 +191,7 @@
>> SizeOffsetType visitExtractElementInst(ExtractElementInst &I);
>> SizeOffsetType visitExtractValueInst(ExtractValueInst &I);
>> SizeOffsetType visitGEPOperator(GEPOperator &GEP);
>> + SizeOffsetType visitGlobalAlias(GlobalAlias &GA);
>> SizeOffsetType visitGlobalVariable(GlobalVariable &GV);
>> SizeOffsetType visitIntToPtrInst(IntToPtrInst&);
>> SizeOffsetType visitLoadInst(LoadInst &I);
>>
>> Modified: llvm/trunk/lib/Analysis/MemoryBuiltins.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/MemoryBuiltins.cpp?rev=171303&r1=171302&r2=171303&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Analysis/MemoryBuiltins.cpp (original)
>> +++ llvm/trunk/lib/Analysis/MemoryBuiltins.cpp Mon Dec 31 10:23:48 2012
>> @@ -399,6 +399,8 @@
>> return visitArgument(*A);
>> if (ConstantPointerNull *P = dyn_cast<ConstantPointerNull>(V))
>> return visitConstantPointerNull(*P);
>> + if (GlobalAlias *GA = dyn_cast<GlobalAlias>(V))
>> + return visitGlobalAlias(*GA);
>> if (GlobalVariable *GV = dyn_cast<GlobalVariable>(V))
>> return visitGlobalVariable(*GV);
>> if (UndefValue *UV = dyn_cast<UndefValue>(V))
>> @@ -517,6 +519,12 @@
>> return std::make_pair(PtrData.first, PtrData.second + Offset);
>> }
>>
>> +SizeOffsetType ObjectSizeOffsetVisitor::visitGlobalAlias(GlobalAlias
>> &GA) {
>> + if (GA.mayBeOverridden())
>> + return unknown();
>> + return compute(GA.getAliasee());
>> +}
>> +
>> SizeOffsetType
>> ObjectSizeOffsetVisitor::visitGlobalVariable(GlobalVariable &GV){
>> if (!GV.hasDefinitiveInitializer())
>> return unknown();
>> @@ -629,6 +637,7 @@
>> } else if (isa<Argument>(V) ||
>> (isa<ConstantExpr>(V) &&
>> cast<ConstantExpr>(V)->getOpcode() ==
>> Instruction::IntToPtr) ||
>> + isa<GlobalAlias>(V) ||
>> isa<GlobalVariable>(V)) {
>> // ignore values where we cannot do more than what ObjectSizeVisitor
>> can
>> Result = unknown();
>>
>>
>> _______________________________________________
>> 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