[all-commits] [llvm/llvm-project] 2e009d: [clang] Frontend components for the relative vtabl...
Leonard Chan via All-commits
all-commits at lists.llvm.org
Wed Jun 10 12:48:46 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 2e009dbcb3e373a59e6e84dce6d51ae8a29f60a5
https://github.com/llvm/llvm-project/commit/2e009dbcb3e373a59e6e84dce6d51ae8a29f60a5
Author: Leonard Chan <leonardchan at google.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M clang/include/clang/AST/VTableBuilder.h
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/CodeGen/ConstantInitBuilder.h
M clang/include/clang/Driver/Options.td
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/VTableBuilder.cpp
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGVTables.cpp
M clang/lib/CodeGen/CGVTables.h
M clang/lib/CodeGen/ConstantInitBuilder.cpp
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/child-inheritted-from-parent-in-comdat.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/child-vtable-in-comdat.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-1.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-2.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/cross-tu-header.h
A clang/test/CodeGenCXX/RelativeVTablesABI/diamond-inheritance.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/diamond-virtual-inheritance.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/dynamic-cast.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/inheritted-virtual-function.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/inline-virtual-function.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/inlined-key-function.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/member-function-pointer.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/multiple-inheritance.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/no-alias-when-dso-local.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/no-stub-when-dso-local.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/override-pure-virtual-method.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/overriden-virtual-function.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/parent-and-child-in-comdats.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/parent-vtable-in-comdat.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/pass-byval-attributes.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/relative-vtables-flag.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/simple-vtable-definition.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/stub-linkages.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/thunk-mangling.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/type-info.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/vbase-offset.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/virtual-function-call.cpp
A clang/test/CodeGenCXX/RelativeVTablesABI/vtable-hidden-when-in-comdat.cpp
Log Message:
-----------
[clang] Frontend components for the relative vtables ABI
This patch contains all of the clang changes from D72959.
- Generalize the relative vtables ABI such that it can be used by other targets.
- Add an enum VTableComponentLayout which controls whether components in the
vtable should be pointers to other structs or relative offsets to those structs.
Other ABIs can change this enum to restructure how components in the vtable
are laid out/accessed.
- Add methods to ConstantInitBuilder for inserting relative offsets to a
specified position in the aggregate being constructed.
See D72959 for background info.
Differential Revision: https://reviews.llvm.org/D77592
More information about the All-commits
mailing list