[PATCH] D97126: [WPD] Fix handling of pure virtual base class

Teresa Johnson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 23 11:10:09 PST 2021


tejohnson marked an inline comment as done.
tejohnson added a comment.

In D97126#2582478 <https://reviews.llvm.org/D97126#2582478>, @MaskRay wrote:

>> Added a new test case that asserted without removing the assert, and that requires the other fixes in this patch to get a successful devirtualization with index-only WPD.
>
> Nit: `other` -> `updateVCallVisibilityInIndex` just to make it clearer:)

There are 2 other fixes, one is updateVCallVisibilityInIndex and one is the change not to skip vtables without virtual functions. I'll update the summary to clarify.



================
Comment at: llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp:1030
+          // to treat this case conservatively (in case the bitcode is old).
+          // However, we will also not have any vtable functions in the
+          // case of a pure virtual base class. In that case we do want
----------------
MaskRay wrote:
> Ok, I understand the "However" part now. Question: does the "Previously" part imply that mixing old bitcode could be a problem?
Not specifically mixing of old and new, just using old bitcode with a newer linker. Also old tests, but those could be fixed, more concerned about trying to link together bitcode produced by an earlier clang.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97126/new/

https://reviews.llvm.org/D97126



More information about the llvm-commits mailing list