[PATCH] Cast vtable address points to i32 (...)** to enable more globalopt

Reid Kleckner rnk at google.com
Wed Oct 22 10:44:11 PDT 2014


Hi majnemer, nlewycky,

We currently use i32 (...)** as the type of the vptr field in the LLVM
struct type. LLVM's GlobalOpt prefers any bitcasts to be on the side of
the data being stored rather than on the pointer being stored to.

http://reviews.llvm.org/D5916

Files:
  lib/CodeGen/CGClass.cpp
  test/CodeGenCXX/constructor-init.cpp
  test/CodeGenCXX/copy-constructor-synthesis-2.cpp
  test/CodeGenCXX/copy-constructor-synthesis.cpp
  test/CodeGenCXX/ctor-globalopt.cpp
  test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp
  test/CodeGenCXX/microsoft-abi-structors.cpp
  test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
  test/CodeGenCXX/microsoft-interface.cpp
  test/CodeGenCXX/skip-vtable-pointer-initialization.cpp
  test/CodeGenCXX/vtable-pointer-initialization.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D5916.15260.patch
Type: text/x-patch
Size: 19195 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141022/3ea99f06/attachment.bin>


More information about the cfe-commits mailing list