What is exactly the objection? If it is the manual vtable, I can revert that part and still get most of the benefit. The big savings are from moving a bunch of code to the .cpp and making some methods non-virtual by using ASTNodeKind. http://reviews.llvm.org/D5124