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