]> granicus.if.org Git - clang/commit
CodeGen: Start using inrange annotations on vtable getelementptr.
authorPeter Collingbourne <peter@pcc.me.uk>
Tue, 13 Dec 2016 20:50:44 +0000 (20:50 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Tue, 13 Dec 2016 20:50:44 +0000 (20:50 +0000)
commit0479ca758f0191bbf5420df1e71775dfad7786c5
tree384beff8c38d3d09a73f423e2d3df0f2ea69079f
parent3382b3d8014580d448579116843bfd6c26d9e286
CodeGen: Start using inrange annotations on vtable getelementptr.

This annotation allows the optimizer to split vtable groups, as permitted by
a change to the Itanium ABI [1] that prevents compilers from adjusting virtual
table pointers between virtual tables.

[1] https://github.com/MentorEmbedded/cxx-abi/pull/7

Differential Revision: https://reviews.llvm.org/D24431

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@289585 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
lib/CodeGen/CGVTT.cpp
lib/CodeGen/ItaniumCXXABI.cpp
test/CodeGenCXX/const-init-cxx11.cpp
test/CodeGenCXX/constructor-init.cpp
test/CodeGenCXX/copy-constructor-synthesis-2.cpp
test/CodeGenCXX/copy-constructor-synthesis.cpp
test/CodeGenCXX/microsoft-interface.cpp
test/CodeGenCXX/skip-vtable-pointer-initialization.cpp
test/CodeGenCXX/strict-vtable-pointers.cpp
test/CodeGenCXX/vtable-assume-load.cpp
test/CodeGenCXX/vtable-pointer-initialization.cpp
test/CodeGenCXX/vtt-layout.cpp