Adding !invariant.group to vptr load/stores for devirtualization purposes.
Rebased after Peter commit and on top of strict-vtable-pointers
For more goto:
http://lists.llvm.org/pipermail/cfe-dev/2015-July/044227.htm
Paths
| Differential D12026
Decorating vptr load & stores with !invariant.group ClosedPublic Authored by Prazek on Aug 13 2015, 10:14 PM.
Details Summary Adding !invariant.group to vptr load/stores for devirtualization purposes. Rebased after Peter commit and on top of strict-vtable-pointers For more goto:
Diff Detail Event TimelinePrazek updated this object. This revision is now accepted and ready to land.Sep 15 2015, 2:07 PM
Revision Contents
Diff 32130 lib/CodeGen/CGAtomic.cpp
lib/CodeGen/CGClass.cpp
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CGExprCXX.cpp
lib/CodeGen/CodeGenFunction.h
lib/CodeGen/CodeGenModule.h
lib/CodeGen/CodeGenModule.cpp
lib/CodeGen/ItaniumCXXABI.cpp
lib/CodeGen/MicrosoftCXXABI.cpp
test/CodeGenCXX/invariat.barrier-for-vptrs.cpp
|
This doesn't seem like it needs to be a separate class. See CreateBitSetIdentifierForType/BitSetIdMap in D11857. I'll factor out that functionality into a separate patch to avoid blocking either review on each other.