[PATCH] D72959: Relative VTables ABI on Fuchsia
Leonard Chan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed May 20 14:18:43 PDT 2020
leonardchan updated this revision to Diff 265342.
leonardchan added a comment.
Calculate the address points once beforehand such that we can get an address point from a vtable index.
Also updated to emit a stub still for complete destructor components in the vtable. The reason for this is because, with optimizations enabled, it's possible for dso_local complete destructors of a child class to be replaced by destructors of a parent class in the child's vtable, even if that parent destructor is not guaranteed to be dso_local. Updated the `no-stub-when-dso-local.cpp` test to reflect this.
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/CodeGen/ConstantInitBuilder.h
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/ConstantInitBuilder.cpp
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/no-alias-when-dso-local.cpp
clang/test/CodeGenCXX/Fuchsia/no-stub-when-dso-local.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/Fuchsia/vtable-hidden-when-in-comdat.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.265342.patch
Type: text/x-patch
Size: 138789 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200520/724e9995/attachment-0001.bin>
More information about the cfe-commits
mailing list