[all-commits] [llvm/llvm-project] c844f8: [ThinLTO/WPD] Fix index-based WPD for available_ex...
Teresa Johnson via All-commits
all-commits at lists.llvm.org
Wed Oct 30 18:02:14 PDT 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: c844f8846aabda577a8bf3b460d4993e89475218
https://github.com/llvm/llvm-project/commit/c844f8846aabda577a8bf3b460d4993e89475218
Author: Teresa Johnson <tejohnson at google.com>
Date: 2019-10-30 (Wed, 30 Oct 2019)
Changed paths:
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
A llvm/test/ThinLTO/X86/Inputs/devirt_available_externally.ll
A llvm/test/ThinLTO/X86/Inputs/devirt_local_same_guid.ll
A llvm/test/ThinLTO/X86/devirt_available_externally.ll
A llvm/test/ThinLTO/X86/devirt_local_same_guid.ll
Log Message:
-----------
[ThinLTO/WPD] Fix index-based WPD for available_externally vtables
Summary:
Clang does not add type metadata to available_externally vtables. When
choosing a summary to look at for virtual function definitions, make
sure we skip summaries for any available externally vtables as they will
not describe any virtual function functions, which are only summarized
in the presence of type metadata on the vtable def. Simply look for the
corresponding strong def's summary.
Also add handling for same-named local vtables with the same GUID
because of same-named files without enough distinguishing path.
In that case we return a conservative result with no devirtualization.
Reviewers: pcc, davidxl, evgeny777
Subscribers: mehdi_amini, inglorion, hiraditya, steven_wu, dexonsmith, arphaman, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69452
More information about the All-commits
mailing list