Displaying 4 results from an estimated 4 matches for "global_end_addr".
2015 Jan 27
7
[LLVMdev] IR extension proposal: bitset constants
...l %continue, label %trap
In the LTO case, such intrinsic calls would be lowered by the bitset lowering pass
into the appropriate range/bit set check code, which might look like this:
(pseudocode for 64-bit platform)
if %vtable & 7 != 0 || %vtable < global_start_addr(_ZBS1A) || %vtable > global_end_addr(_ZBS1A) {
%p = 0
} else {
%p = bitset(_ZBS1A)[(%vtable - global_start_addr(_ZBS1A)) >> 3]
}
In the non-LTO case, we would generate similar code, but with appropriate
relocations so that the required constants (global start/end address, bitset
address, mask, shift amount) would receive ap...
2015 Jan 28
3
[LLVMdev] IR extension proposal: bitset constants
...nsic calls would be lowered by the bitset
>> lowering pass
>> into the appropriate range/bit set check code, which might look like this:
>> (pseudocode for 64-bit platform)
>>
>> if %vtable & 7 != 0 || %vtable < global_start_addr(_ZBS1A) || %vtable >
>> global_end_addr(_ZBS1A) {
>> %p = 0
>> } else {
>> %p = bitset(_ZBS1A)[(%vtable - global_start_addr(_ZBS1A)) >> 3]
>> }
>>
>> In the non-LTO case, we would generate similar code, but with appropriate
>> relocations so that the required constants (global start/end...
2015 Jan 29
3
[LLVMdev] IR extension proposal: bitset constants
...pass
> > >> into the appropriate range/bit set check code, which might look like
> this:
> > >> (pseudocode for 64-bit platform)
> > >>
> > >> if %vtable & 7 != 0 || %vtable < global_start_addr(_ZBS1A) || %vtable
> >
> > >> global_end_addr(_ZBS1A) {
> > >> %p = 0
> > >> } else {
> > >> %p = bitset(_ZBS1A)[(%vtable - global_start_addr(_ZBS1A)) >> 3]
> > >> }
> > >>
> > >> In the non-LTO case, we would generate similar code, but with
> appropriate
>...
2015 Jan 30
0
[LLVMdev] IR extension proposal: bitset constants
...> In the LTO case, such intrinsic calls would be lowered by the bitset lowering pass
> into the appropriate range/bit set check code, which might look like this:
> (pseudocode for 64-bit platform)
>
> if %vtable & 7 != 0 || %vtable < global_start_addr(_ZBS1A) || %vtable > global_end_addr(_ZBS1A) {
> %p = 0
> } else {
> %p = bitset(_ZBS1A)[(%vtable - global_start_addr(_ZBS1A)) >> 3]
> }
>
> In the non-LTO case, we would generate similar code, but with appropriate
> relocations so that the required constants (global start/end address, bitset
> address...