Displaying 2 results from an estimated 2 matches for "vtable_bit_and".
Did you mean:
vtable_bit_addr
2016 Jan 28
8
Proposal: virtual constant propagation
...y out globals or create bitsets if all
calls to llvm.bitset.test are passed to llvm.assume.
If virtual constant propagation succeeds, the transformed IR will look
like this:
%vtable = load i8*, i8** %obj
%vtable_bit_addr = getelementptr i8* %vtable, i64 -17
%vtable_bit = load i8 %vtable_bit_addr
%vtable_bit_and = and i8 %vtable_bit, 1
%result = icmp ne %vtable_bit_and, 0
The pass that applies this transformation will be placed early in the LTO
pipeline, before most of the regular optimization passes. The pass could later
be extended to do general devirtualization based on the bitset information:
- The...
2016 Jan 28
2
Proposal: virtual constant propagation
...sed to llvm.assume.
>>
>> If virtual constant propagation succeeds, the transformed IR will look
>> like this:
>>
>> %vtable = load i8*, i8** %obj
>> %vtable_bit_addr = getelementptr i8* %vtable, i64 -17
>> %vtable_bit = load i8 %vtable_bit_addr
>> %vtable_bit_and = and i8 %vtable_bit, 1
>> %result = icmp ne %vtable_bit_and, 0
>>
>> The pass that applies this transformation will be placed early in the LTO
>> pipeline, before most of the regular optimization passes. The pass could later
>> be extended to do general devirtualizat...