llvm-project/llvm/test/Transforms/CodeGenPrepare
Hiroshi Yamauchi 9364432cec Unmerge GEPs to reduce register pressure on IndirectBr edges.
Summary:
GEP merging can sometimes increase the number of live values and register
pressure across control edges and cause performance problems particularly if the
increased register pressure results in spills.

This change implements GEP unmerging around an IndirectBr in certain cases to
mitigate the issue. This is in the CodeGenPrepare pass (after all the GEP
merging has happened.)

With this patch, the Python interpreter loop runs faster by ~5%.

Reviewers: sanjoy, hfinkel

Reviewed By: hfinkel

Subscribers: eastig, junbuml, llvm-commits

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

llvm-svn: 312930
2017-09-11 17:52:08 +00:00
..
AArch64 [CodeGenPrep] Skip merging empty case blocks 2016-12-16 20:38:39 +00:00
AMDGPU AMDGPU: Mark all unspecified CC functions in tests as amdgpu_kernel 2017-03-21 21:39:51 +00:00
ARM
NVPTX [BypassSlowDivision] Do not bypass division of hash-like values 2017-04-02 13:14:30 +00:00
X86 [CGP] use narrower types in memcmp expansion when possible 2017-08-01 17:24:54 +00:00
2008-11-24-RAUW-Self.ll
basic.ll Let llvm.objectsize be conservative with null pointers 2017-03-21 20:08:59 +00:00
bitreverse-hang.ll
builtin-condition.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
crash-on-large-allocas.ll Add a test for r307754 2017-07-12 16:30:37 +00:00
dom-tree.ll
gep-unmerging.ll Unmerge GEPs to reduce register pressure on IndirectBr edges. 2017-09-11 17:52:08 +00:00
invariant.group.ll Fix CodeGenPrepare::stripInvariantGroupMetadata 2016-12-16 18:52:33 +00:00
nonintegral.ll [CodeGenPrepare] Don't create inttoptr for ni ptrs 2017-06-29 20:28:59 +00:00
overflow-intrinsics.ll
section-samplepgo.ll Restrict call metadata based hotness detection to Sample PGO mode 2017-05-11 23:18:05 +00:00
section.ll Restrict call metadata based hotness detection to Sample PGO mode 2017-05-11 23:18:05 +00:00
skip-merging-case-block.ll [CodeGenPrep] Skip merging empty case blocks 2016-12-16 20:38:39 +00:00
split-indirect-loop.ll [CodeGenPrepare] Fix crash due to an invalid CFG 2017-04-17 19:11:04 +00:00
statepoint-relocate.ll [CGP] Fix the rematerialization of gc.relocates 2017-08-17 05:48:30 +00:00