Displaying 4 results from an estimated 4 matches for "virtual_method1".
Did you mean:
virtual_method2
2013 May 10
0
[LLVMdev] [cfe-dev] "load groups" IR feature to improve C++ devirtualization
...google.com> wrote:
> > I'm looking into how we can improve devirtualization in clang, and there a language in C++ feature I'd like to take advantage of which would let us perform elimination of more vptr loads. In this code:
> >
> > Cls *p = new Cls;
> > p->virtual_method1();
> > p->method_changing_vptr(); // uses placement new to legally change the vptr
> > p->virtual_method2(); // invalid!
> > Cls *q = p;
> > q->virtual_method2(); // this must get a new vptr lookup.
>
> I bungled my example, and I want to fix that...
2013 May 10
0
[LLVMdev] [cfe-dev] "load groups" IR feature to improve C++ devirtualization
...ky <nlewycky at google.com> wrote:
> I'm looking into how we can improve devirtualization in clang, and there a language in C++ feature I'd like to take advantage of which would let us perform elimination of more vptr loads. In this code:
>
> Cls *p = new Cls;
> p->virtual_method1();
> p->method_changing_vptr(); // uses placement new to legally change the vptr
> p->virtual_method2(); // invalid!
> Cls *q = p;
> q->virtual_method2(); // this must get a new vptr lookup.
This is not how I understand the [basic.life] rules. The question is wheth...
2013 May 10
4
[LLVMdev] "load groups" IR feature to improve C++ devirtualization
I'm looking into how we can improve devirtualization in clang, and there a
language in C++ feature I'd like to take advantage of which would let us
perform elimination of more vptr loads. In this code:
Cls *p = new Cls;
p->virtual_method1();
p->method_changing_vptr(); // uses placement new to legally change the
vptr
p->virtual_method2(); // invalid!
Cls *q = p;
q->virtual_method2(); // this must get a new vptr lookup.
there is no need to reload p's vptr, even if the method did update the vptr.
C++ [basic.li...
2013 May 10
4
[LLVMdev] [cfe-dev] "load groups" IR feature to improve C++ devirtualization
...> wrote:
> > I'm looking into how we can improve devirtualization in clang, and there
> a language in C++ feature I'd like to take advantage of which would let us
> perform elimination of more vptr loads. In this code:
> >
> > Cls *p = new Cls;
> > p->virtual_method1();
> > p->method_changing_vptr(); // uses placement new to legally change
> the vptr
> > p->virtual_method2(); // invalid!
> > Cls *q = p;
> > q->virtual_method2(); // this must get a new vptr lookup.
>
I bungled my example, and I want to fix that...