This is the mail archive of the
mailing list for the GCC project.
Re: vtable optimization (was Re: TREE_UNCHANGING?)
Jason Merrill <firstname.lastname@example.org> writes:
| Another tangent: if we know the static type of the object, we can do even
Hmm, did you mean "dynamic type"?
| better: we can skip the vtable lookup entirely and call the function
| directly. There is some simple code in the C++ frontend to handle this,
| mostly in fixed_type_or_null; a more C++-aware optimizer could track the
| static type information as well as the alias set, so that we could perform
| this optimization for code like
| A a;
| A *ap = &a;
| as well as the simpler
| A a;
That requires some kind of value propagation applyed to pointers.
That is a valuable optimization to consider.
| This stuff is probably better suited for an AST-level optimization pass.
I completely agree with your observation.