1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 12:43:36 +01:00
llvm-mirror/test/Transforms/WholeProgramDevirt
Teresa Johnson 44ebb78e5e [ThinLTO] Efficiency fix for writing type id records in per-module indexes
Summary:
In D49565/r337503, the type id record writing was fixed so that only
referenced type ids were emitted into each per-module index for ThinLTO
distributed builds. However, this still left an efficiency issue: each
per-module index checked all type ids for membership in the referenced
set, yielding O(M*N) performance (M indexes and N type ids).

Change the TypeIdMap in the summary to be indexed by GUID, to facilitate
correlating with type identifier GUIDs referenced in the function
summary TypeIdInfo structures. This allowed simplifying other
places where a map from type id GUID to type id map entry was previously
being used to aid this correlation.

Also fix AsmWriter code to handle the rare case of type id GUID
collision.

For a large internal application, this reduced the thin link time by
almost 15%.

Reviewers: pcc, vitalybuka

Subscribers: mehdi_amini, inglorion, steven_wu, dexonsmith, llvm-commits

Differential Revision: https://reviews.llvm.org/D51330

llvm-svn: 343021
2018-09-25 20:14:40 +00:00
..
Inputs
bad-read-from-vtable.ll
branch-funnel-threshold.ll
branch-funnel.ll
constant-arg.ll
devirt-single-impl-check.ll
devirt-single-impl.ll
expand-check.ll
export-nothing.ll
export-single-impl.ll
export-uniform-ret-val.ll
export-unique-ret-val.ll
export-unsuccessful-checked.ll
export-vcp.ll
import-indir.ll
import-no-dominating-assume.ll
import.ll
non-constant-vtable.ll
pointer-vtable.ll
soa-vtable.ll
struct-vtable.ll
uniform-retval-invoke.ll
uniform-retval.ll
unique-retval.ll
vcp-accesses-memory.ll
vcp-decl.ll
vcp-no-this.ll
vcp-non-constant-arg.ll
vcp-too-wide-ints.ll
vcp-type-mismatch.ll
vcp-uses-this.ll
virtual-const-prop-begin.ll
virtual-const-prop-check.ll
virtual-const-prop-end.ll
vtable-decl.ll