[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