[PATCH] D11441: Generating available_externally vtables for classes without inline virtual functions

Piotr Padlewski prazek at google.com
Wed Jul 22 17:22:26 PDT 2015


Prazek created this revision.
Prazek added reviewers: rsmith, nlewycky, majnemer.
Prazek added a subscriber: cfe-commits.

Generating available_externally vtables for optimizations purposes. Unfortunatelly ItaniumABI doesn't guarantee that we will be able to refer to virtual inline method by name.
But when we don't have any inline virtual methods, and key function is not defined in this TU, we can generate vtable and mark it as available_externally.

This is patch will help devirtualize better, for more info go to http://lists.cs.uiuc.edu/pipermail/cfe-dev/2015-July/044246.html

http://reviews.llvm.org/D11441

Files:
  include/clang/AST/VTableBuilder.h
  lib/CodeGen/CGCXXABI.h
  lib/CodeGen/CGVTables.cpp
  lib/CodeGen/ItaniumCXXABI.cpp
  lib/CodeGen/MicrosoftCXXABI.cpp
  test/CodeGenCXX/vtable-available-externally.cpp
  test/CodeGenCXX/vtable-linkage.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11441.30431.patch
Type: text/x-patch
Size: 11634 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150723/54bf5d3b/attachment.bin>


More information about the cfe-commits mailing list