[PATCH] D29734: IR: Function summary extensions for whole-program devirtualization pass.

Teresa Johnson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 10 14:24:30 PST 2017


tejohnson accepted this revision.
tejohnson added inline comments.
This revision is now accepted and ready to land.


================
Comment at: llvm/include/llvm/Bitcode/LLVMBitCodes.h:221
+  // The list of virtual calls made by this function using
+  // llvm.assume(llvm.type.test) intrinsics that do not have constant integer
+  // arguments.
----------------
Add the "all constant" to comments for records too.


================
Comment at: llvm/include/llvm/IR/ModuleSummaryIndex.h:256
+  struct VFuncId {
+    GlobalValue::GUID GUID;
+    uint64_t Offset;
----------------
pcc wrote:
> tejohnson wrote:
> > I wonder if GUID should be moved out of GlobalValue since we are now using it for types?
> Not sure -- it isn't clear where else it should go though. One possibility is ModuleSummaryIndex, but that will also require moving getGUID to avoid a circular dependency. Moving it should probably be a separate cleanup, I reckon.
I'm not sure either, and it doesn't have to be done in this patch, but it stood out to me since we are adding more non-GV uses of this functionality. The summary is not the right place, since getGUID and GUID are also used in the instrumentation based PGO functionality.


https://reviews.llvm.org/D29734





More information about the llvm-commits mailing list