llvm-mirror/test/Transforms/WholeProgramDevirt
Peter Collingbourne 2d9d29d672 WholeProgramDevirt: Change internal vcall data structures to match summary.
Group calls into constant and non-constant arguments up front, and use uint64_t
instead of ConstantInt to represent constant arguments. The goal is to allow
the information from the summary to fit naturally into this data structure in
a future change (specifically, it will be added to CallSiteInfo).

This has two side effects:
- We disallow VCP for constant integer arguments of width >64 bits.
- We remove the restriction that the bitwidth of a vcall's argument and return
  types must match those of the vfunc definitions.
I don't expect either of these to matter in practice. The first case is
uncommon, and the second one will lead to UB (so we can do anything we like).

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

llvm-svn: 295110
2017-02-14 22:12:23 +00:00
..
Inputs IR: Type ID summary extensions for WPD; thread summary into WPD pass. 2017-02-13 19:26:18 +00:00
bad-read-from-vtable.ll LowerTypeTests: Change a few vtable globals in tests to constants. 2017-02-09 01:48:24 +00:00
constant-arg.ll
devirt-single-impl-check.ll
devirt-single-impl.ll
expand-check.ll
export-nothing.ll IR: Type ID summary extensions for WPD; thread summary into WPD pass. 2017-02-13 19:26:18 +00:00
import-indir.ll IR: Type ID summary extensions for WPD; thread summary into WPD pass. 2017-02-13 19:26:18 +00:00
non-constant-vtable.ll
pointer-vtable.ll
soa-vtable.ll
struct-vtable.ll
uniform-retval-invoke.ll
uniform-retval.ll
unique-retval.ll WholeProgramDevirt: Change internal vcall data structures to match summary. 2017-02-14 22:12:23 +00:00
vcp-accesses-memory.ll LowerTypeTests: Change a few vtable globals in tests to constants. 2017-02-09 01:48:24 +00:00
vcp-decl.ll WholeProgramDevirt: Check that VCP candidate functions are defined before evaluating them. 2017-02-09 23:46:26 +00:00
vcp-no-this.ll LowerTypeTests: Change a few vtable globals in tests to constants. 2017-02-09 01:48:24 +00:00
vcp-non-constant-arg.ll LowerTypeTests: Change a few vtable globals in tests to constants. 2017-02-09 01:48:24 +00:00
vcp-too-wide-ints.ll WholeProgramDevirt: Change internal vcall data structures to match summary. 2017-02-14 22:12:23 +00:00
vcp-type-mismatch.ll WholeProgramDevirt: Change internal vcall data structures to match summary. 2017-02-14 22:12:23 +00:00
vcp-uses-this.ll LowerTypeTests: Change a few vtable globals in tests to constants. 2017-02-09 01:48:24 +00:00
virtual-const-prop-begin.ll
virtual-const-prop-check.ll
virtual-const-prop-end.ll