Displaying 4 results from an estimated 4 matches for "isnotnull".
2013 Nov 08
2
[LLVMdev] Proposal for safe-to-execute meta-data for heap accesses
...you can use this to optimize things.
- Hoisting loads out of a loop for IR generated from a type-safe language that has NULL. Consider a loop like:
if (%p == 0)
call <something that throws a Null Pointer Exception>
for (…) {
if (%c) {
%p2 = gep %p, ...
%v = load %p2 !notrap !{ @isNotNull, %p }
}
}
And let’s assume that @isNotNull just does a null comparison on its pointer argument. In this code, it would now be possible to hoist the load out of the loop because we can indeed prove that at the loop pre-header, @isNotNull must return true because of the condition on %p.
- Contr...
2013 Nov 08
1
[LLVMdev] Proposal for safe-to-execute meta-data for heap accesses
...f, %a1, %a2, …, %an }
It must be the case that %a1…%an are reachable from %p in the sense that ADCE could only kill %a1…%an if it killed %p.
Here are some concrete examples:
- Load that requires a pointer to be null-checked:
%p = getelementptr %object, <things>
%v = load %p !notrap !{ @isNotNull, %object }
- Load that requires a null check and an array bounds check:
%p = getelementptr %object, %index (possibly other things also depending on your array object model)
%v = load %p !notrap !{ @isNotNullAndInBounds,%object, %index }
- Load that requires tagged value encoding and that an o...
2013 Nov 08
0
[LLVMdev] Proposal for safe-to-execute meta-data for heap accesses
----- Original Message -----
>
>
>
>
>
> On Nov 8, 2013, at 1:13 AM, Chandler Carruth < chandlerc at google.com >
> wrote:
>
>
>
>
>
>
>
>
> On Thu, Nov 7, 2013 at 9:39 PM, Filip Pizlo < fpizlo at apple.com >
> wrote:
>
>
>
> NEW PROPOSAL
>
> The solution is to introduce meta-data that is explicit
2013 Nov 08
5
[LLVMdev] Proposal for safe-to-execute meta-data for heap accesses
> On Nov 8, 2013, at 1:13 AM, Chandler Carruth <chandlerc at google.com> wrote:
>
>
>> On Thu, Nov 7, 2013 at 9:39 PM, Filip Pizlo <fpizlo at apple.com> wrote:
>> NEW PROPOSAL
>>
>> The solution is to introduce meta-data that is explicit about how the safe-to-execute condition ought to be evaluated. Instead of an SSA use, we can have meta-data that