[PATCH] D72959: Relative VTables ABI on Fuchsia
Leonard Chan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 23 09:11:27 PDT 2020
leonardchan updated this revision to Diff 259595.
leonardchan marked 2 inline comments as done.
leonardchan edited the summary of this revision.
leonardchan added a comment.
Herald added a subscriber: mgorny.
- Remove `fuchsia` pair from the argument and LangOpt.
- Make the virtual base offset and offset to top 32-bits to make the whole vtable 32-bit aligned.
- Introduce and check against the `ItaniumVTableContext::VTableComponentLayout` enum which will indicate that vtable components should be relative instead of pointers. Use this instead of making overridable virtual methods in ABI classes since this shouldn't be customized between ABIs.
- Update tests.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D72959/new/
https://reviews.llvm.org/D72959
Files:
clang/cmake/caches/Fuchsia-stage2.cmake
clang/include/clang/AST/VTableBuilder.h
clang/include/clang/Basic/LangOptions.def
clang/include/clang/Driver/Options.td
clang/lib/AST/ASTContext.cpp
clang/lib/AST/VTableBuilder.cpp
clang/lib/CodeGen/CGClass.cpp
clang/lib/CodeGen/CGVTables.cpp
clang/lib/CodeGen/CGVTables.h
clang/lib/CodeGen/ItaniumCXXABI.cpp
clang/lib/CodeGen/MicrosoftCXXABI.cpp
clang/lib/Driver/ToolChains/Fuchsia.cpp
clang/lib/Frontend/CompilerInvocation.cpp
clang/test/CodeGenCXX/Fuchsia/child-inheritted-from-parent-in-comdat.cpp
clang/test/CodeGenCXX/Fuchsia/child-vtable-in-comdat.cpp
clang/test/CodeGenCXX/Fuchsia/cross-translation-unit-1.cpp
clang/test/CodeGenCXX/Fuchsia/cross-translation-unit-2.cpp
clang/test/CodeGenCXX/Fuchsia/cross-tu-header.h
clang/test/CodeGenCXX/Fuchsia/diamond-inheritance.cpp
clang/test/CodeGenCXX/Fuchsia/diamond-virtual-inheritance.cpp
clang/test/CodeGenCXX/Fuchsia/dynamic-cast.cpp
clang/test/CodeGenCXX/Fuchsia/inheritted-virtual-function.cpp
clang/test/CodeGenCXX/Fuchsia/inline-virtual-function.cpp
clang/test/CodeGenCXX/Fuchsia/inlined-key-function.cpp
clang/test/CodeGenCXX/Fuchsia/member-function-pointer.cpp
clang/test/CodeGenCXX/Fuchsia/multiple-inheritance.cpp
clang/test/CodeGenCXX/Fuchsia/override-pure-virtual-method.cpp
clang/test/CodeGenCXX/Fuchsia/overriden-virtual-function.cpp
clang/test/CodeGenCXX/Fuchsia/parent-and-child-in-comdats.cpp
clang/test/CodeGenCXX/Fuchsia/parent-vtable-in-comdat.cpp
clang/test/CodeGenCXX/Fuchsia/pass-byval-attributes.cpp
clang/test/CodeGenCXX/Fuchsia/relative-vtables-flag.cpp
clang/test/CodeGenCXX/Fuchsia/simple-vtable-definition.cpp
clang/test/CodeGenCXX/Fuchsia/stub-linkages.cpp
clang/test/CodeGenCXX/Fuchsia/thunk-mangling.cpp
clang/test/CodeGenCXX/Fuchsia/type-info.cpp
clang/test/CodeGenCXX/Fuchsia/vbase-offset.cpp
clang/test/CodeGenCXX/Fuchsia/virtual-function-call.cpp
clang/test/CodeGenCXX/constructor-destructor-return-this.cpp
libcxxabi/CMakeLists.txt
libcxxabi/src/private_typeinfo.cpp
llvm/lib/IR/Constants.cpp
llvm/test/CodeGen/X86/relptr-rodata.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72959.259595.patch
Type: text/x-patch
Size: 118260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200423/f55ee04c/attachment-0001.bin>
More information about the cfe-commits
mailing list