Displaying 5 results from an estimated 5 matches for "classvtbl".
2010 Oct 11
4
[LLVMdev] Missed devirtualization opportunities
I took the output of clang, simplified it, and used it as a testbase.
Essentially, there is one class with one virtual function; I create an
instance and call the virtual method all in one function:
; The TestVirtual class vtbl
@classvtbl.TestVirtual = constant %classvtbltype.TestVirtual {
; Pointers to the virtual methods for the TestVirtual class
...
}
; ...
define i32 @main() nounwind {
; create the instance
%pinstance = alloca %class.TestVirtual
; %ppVtbl becomes a pointer to the instance's vtbl pointer.
%ppVtbl = gete...
2010 Oct 11
0
[LLVMdev] Missed devirtualization opportunities
On Oct 11, 2010, at 9:12 AM, Kenneth Uildriks wrote:
> 3. The front-end, recognizing that scribbling on an instance's vtbl
> pointer has undefined results, eliminated the loads of the vtbl
> pointer and replaced them with @classvtbl.TestVirtual. This would
> allow devirtualization within a function at least, but (I think) would
> do less to allow analysis to spot devirtualization opportunities
> across functions. (Although ArgPromotion could arrange to have the
> vtbl pointer passed in separately, and then inlini...
2010 Oct 11
2
[LLVMdev] Missed devirtualization opportunities
...hn McCall <rjmccall at apple.com> wrote:
> On Oct 11, 2010, at 9:12 AM, Kenneth Uildriks wrote:
>> 3. The front-end, recognizing that scribbling on an instance's vtbl
>> pointer has undefined results, eliminated the loads of the vtbl
>> pointer and replaced them with @classvtbl.TestVirtual. This would
>> allow devirtualization within a function at least, but (I think) would
>> do less to allow analysis to spot devirtualization opportunities
>> across functions. (Although ArgPromotion could arrange to have the
>> vtbl pointer passed in separately,...
2010 Oct 11
0
[LLVMdev] Missed devirtualization opportunities
...mccall at apple.com> wrote:
>> On Oct 11, 2010, at 9:12 AM, Kenneth Uildriks wrote:
>>> 3. The front-end, recognizing that scribbling on an instance's vtbl
>>> pointer has undefined results, eliminated the loads of the vtbl
>>> pointer and replaced them with @classvtbl.TestVirtual. This would
>>> allow devirtualization within a function at least, but (I think) would
>>> do less to allow analysis to spot devirtualization opportunities
>>> across functions. (Although ArgPromotion could arrange to have the
>>> vtbl pointer passe...
2010 Oct 11
3
[LLVMdev] Missed devirtualization opportunities
...l <rjmccall at apple.com> wrote:
>
> On Oct 11, 2010, at 9:12 AM, Kenneth Uildriks wrote:
>
> 3. The front-end, recognizing that scribbling on an instance's vtbl
>
> pointer has undefined results, eliminated the loads of the vtbl
>
> pointer and replaced them with @classvtbl.TestVirtual. This would
>
> allow devirtualization within a function at least, but (I think) would
>
> do less to allow analysis to spot devirtualization opportunities
>
> across functions. (Although ArgPromotion could arrange to have the
>
> vtbl pointer passed in separat...