[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