1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test/Transforms/LoopVectorize
Peter Collingbourne 5b721561aa DI: Reverse direction of subprogram -> function edge.
Previously, subprograms contained a metadata reference to the function they
described. Because most clients need to get or set a subprogram for a given
function rather than the other way around, this created unneeded inefficiency.

For example, many passes needed to call the function llvm::makeSubprogramMap()
to build a mapping from functions to subprograms, and the IR linker needed to
fix up function references in a way that caused quadratic complexity in the IR
linking phase of LTO.

This change reverses the direction of the edge by storing the subprogram as
function-level metadata and removing DISubprogram's function field.

Since this is an IR change, a bitcode upgrade has been provided.

Fixes PR23367. An upgrade script for textual IR for out-of-tree clients is
attached to the PR.

Differential Revision: http://reviews.llvm.org/D14265

llvm-svn: 252219
2015-11-05 22:03:56 +00:00
..
AArch64
ARM
PowerPC
X86 DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
XCore
12-12-11-if-conv.ll
2012-10-20-infloop.ll
2012-10-22-isconsec.ll
align.ll
bsd_regex.ll
bzip_reverse_loops.ll
calloc.ll
cast-induction.ll
conditional-assignment.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
control-flow.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
cpp-new-array.ll
dbg.value.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debugloc.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
duplicated-metadata.ll
ee-crash.ll
exact.ll
flags.ll
float-reduction.ll
funcall.ll
gcc-examples.ll
gep_with_bitcast.ll LoopVectorizer - skip 'bitcast' between GEP and load. 2015-11-03 10:29:34 +00:00
global_alias.ll
hoist-loads.ll
i8-induction.ll
if-conv-crash.ll
if-conversion-edgemasks.ll
if-conversion-nest.ll
if-conversion-reduction.ll
if-conversion.ll
if-pred-stores.ll
incorrect-dom-info.ll
increment.ll
induction_plus.ll
induction.ll
infiniteloop.ll
interleaved-accesses.ll
intrinsic.ll
lcssa-crash.ll
lifetime.ll
loop-form.ll
loop-vect-memdep.ll
memdep.ll
metadata-unroll.ll
metadata-width.ll
metadata.ll
miniters.ll
minmax_reduction.ll
multi-use-reduction-bug.ll
multiple-address-spaces.ll
no_array_bounds.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
no_idiv_reduction.ll
no_int_induction.ll
no_outside_user.ll
no_switch.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
nofloat.ll
non-const-n.ll
nontemporal.ll
nsw-crash.ll
opt.ll
optsize.ll
phi-hang.ll
ptr_loops.ll
ptr-induction.ll
read-only.ll
reduction.ll
reverse_induction.ll
reverse_iter.ll
runtime-check-address-space.ll
runtime-check-readonly-address-space.ll
runtime-check-readonly.ll
runtime-check.ll
runtime-limit.ll
safegep.ll
same-base-access.ll
scalar-select.ll
scev-exitlim-crash.ll
simple-unroll.ll
small-loop.ll
start-non-zero.ll
store-shuffle-bug.ll
struct_access.ll
tbaa-nodep.ll
undef-inst-bug.ll
unroll_novec.ll
unroll.ll
unsized-pointee-crash.ll
value-ptr-bug.ll
vect.omp.persistence.ll
vect.stats.ll
vectorize-once.ll
version-mem-access.ll
write-only.ll
zero-sized-pointee-crash.ll