search for: isobjectsmallerthan

Displaying 6 results from an estimated 6 matches for "isobjectsmallerthan".

2013 Feb 27
2
[LLVMdev] Question about intrinsic function llvm.objectsize
...or store) is bigger than the underlying object of the other accessed object. For you example below: V1Size = sizeof(mydata) V2Size = say 4 assuming that GetUnderlyingObject for addr1 and addr2 returns mydata: getObjectSize(O1) = sizeof(mydata) getObjectSize(O2) = sizeof(mydata) this should be isObjectSmallerThan(O2, V1Size) == false isObjectSmallerThan(O1, V2Size) == false ?? > > In llvm, the "object pointed to by ptr p" seems to take on two meanings. Suppose the corresponding > clique of the "object", regardless which context it is in, is C. > a): the object refe...
2013 Feb 27
0
[LLVMdev] Question about intrinsic function llvm.objectsize
...ze = say 4 > > assuming that GetUnderlyingObject for addr1 and addr2 returns mydata: This assumption is wrong. The GetUnderlyingObject() return phi node instead of &mydata. > > getObjectSize(O1) = sizeof(mydata) > getObjectSize(O2) = sizeof(mydata) > > this should be > isObjectSmallerThan(O2, V1Size) == false > isObjectSmallerThan(O1, V2Size) == false > > ?? > >> In llvm, the "object pointed to by ptr p" seems to take on two meanings. Suppose the corresponding >> clique of the "object", regardless which context it is in, is C. >&gt...
2013 Feb 26
2
[LLVMdev] Question about intrinsic function llvm.objectsize
...turn true; 361 } Figure 2 cat -n lib/Analysis/BasicAliasAnalysis.cpp 1205 // If the size of one access is larger than the entire object on the other 1206 // side, then we know such behavior is undefined and can assume no alias. 1207 if (TD) 1208 if ((V1Size != UnknownSize && isObjectSmallerThan(O2, V1Size, *TD, *TLI)) || 1209 (V2Size != UnknownSize && isObjectSmallerThan(O1, V2Size, *TD, *TLI))) 1210 return NoAlias; -------------- next part -------------- ; ModuleID = 'a.c' target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f...
2013 Feb 27
0
[LLVMdev] Question about intrinsic function llvm.objectsize
Hi, Regarding the definition of object for @llvm.objectsize, it is identical to gcc's __builtin_object_size(). So it's not wrong; it's just the way it was defined to be. Regarding the BasicAA's usage of these functions, I'm unsure. It seems to me that isObjectSmallerThan() also expects the same definition, but I didn't review the code carefully. When you do a load from a certain memory address, basicAA is interested to know if that load will overflow the buffer bounds, which means that no aliasing can occur (or it's an UB operation). Therefore I don...
2013 Feb 27
4
[LLVMdev] Question about intrinsic function llvm.objectsize
...gt; Hi, > > Regarding the definition of object for @llvm.objectsize, it is identical to gcc's __builtin_object_size(). So it's not wrong; it's just the way it was defined to be. > > Regarding the BasicAA's usage of these functions, I'm unsure. It seems to me that isObjectSmallerThan() also expects the same definition, but I didn't review the code carefully. > When you do a load from a certain memory address, basicAA is interested to know if that load will overflow the buffer bounds, which means that no aliasing can occur (or it's an UB operation). > Therefore I d...
2013 Feb 27
0
[LLVMdev] Question about intrinsic function llvm.objectsize
...t; >> Regarding the definition of object for @llvm.objectsize, it is identical to gcc's __builtin_object_size(). So it's not wrong; it's just the way it was defined to be. >> >> Regarding the BasicAA's usage of these functions, I'm unsure. It seems to me that isObjectSmallerThan() also expects the same definition, but I didn't review the code carefully. >> When you do a load from a certain memory address, basicAA is interested to know if that load will overflow the buffer bounds, which means that no aliasing can occur (or it's an UB operation). >> There...