llvm-project/llvm/test
Andrei Elovikov f9b8035f3c [LoopUnroll] Ignore ephemeral values when checking full unroll profitability.
Summary:
Before this patch call graph is like this in the LoopUnrollPass:

  tryToUnrollLoop
    ApproximateLoopSize
      collectEphemeralValues
      /* Use collected ephemeral values */
    computeUnrollCount
      analyzeLoopUnrollCost
        /* Bail out from the analysis if loop contains CallInst */

This patch moves collection of the ephemeral values to the tryToUnrollLoop
function and passes the collected values into both ApproximateLoopsize (as
before) and additionally starts using them in analyzeLoopUnrollCost:

  tryToUnrollLoop
    collectEphemeralValues
    ApproximateLoopSize(EphValues)
      /* Use EphValues */
    computeUnrollCount(EphValues)
      analyzeLoopUnrollCost(EphValues)
        /* Ignore ephemeral values - they don't contribute to the final cost */
        /* Bail out from the analysis if loop contains CallInst */

Reviewers: mzolotukhin, evstupac, sanjoy

Reviewed By: evstupac

Subscribers: llvm-commits

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

llvm-svn: 327617
2018-03-15 09:59:15 +00:00
..
Analysis [AArch64] Adjust the cost of integer vector division 2018-03-07 22:35:32 +00:00
Assembler Make the LLParser accept call instructions of variables in the program AS 2018-02-27 11:15:11 +00:00
Bindings [LLVM-C] Redo unnamed_address attribute bindings 2018-03-14 06:45:51 +00:00
Bitcode Refactor check for dllimport in the Verifier. 2018-03-06 17:19:23 +00:00
BugPoint [bugpoint] Report non-existent opt binary 2018-02-09 06:09:15 +00:00
CodeGen [X86] Add test cases for 512-bit addsub from build_vector. 2018-03-15 06:49:01 +00:00
DebugInfo [FastISel] Sink local value materializations to first use 2018-03-14 21:54:21 +00:00
Examples
ExecutionEngine [RuntimeDyld][MachO] Fix assertion in encodeAddend, add missing directive to 2018-03-01 01:44:33 +00:00
Feature Remove the LoopInstSimplify pass (-loop-instsimplify) 2018-03-12 20:49:42 +00:00
FileCheck
Instrumentation [asan] Fix a false positive ODR violation due to LTO ConstantMerge pass [llvm part, take 3] 2018-03-08 21:02:18 +00:00
Integer
JitListener
LTO Revert "[LTO] Support filtering by hotness threshold" 2018-03-08 01:13:10 +00:00
Linker [DebugInfo] Add remaining files to r325970 2018-02-23 23:13:18 +00:00
MC [MC] Always emit relocations for same-section function references 2018-03-14 19:24:32 +00:00
Object [WebAssembly] Reorder reloc sections to come between symtab and name 2018-03-05 12:59:03 +00:00
ObjectYAML [WebAssembly] Disallow weak undefined globals in the object format 2018-03-09 16:30:44 +00:00
Other Recommit r325001: [CallSiteSplitting] Support splitting of blocks with instrs before call. 2018-02-14 13:59:12 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen TableGen: Add !ne, !le, !lt, !ge, and !gt comparisons 2018-03-14 11:00:57 +00:00
ThinLTO/X86 [ThinLTO] Clear dllimport when setting dso_local. 2018-03-13 15:24:51 +00:00
Transforms [LoopUnroll] Ignore ephemeral values when checking full unroll profitability. 2018-03-15 09:59:15 +00:00
Unit
Verifier [DebugInfo] Add verifier for DICompositeType vector 2018-03-08 19:31:37 +00:00
YAMLParser
tools [LTO/gold] Support --wrap 2018-03-14 13:26:18 +00:00
.clang-format
CMakeLists.txt [CMake] Add missing test dependency 2018-03-08 14:43:24 +00:00
TestRunner.sh
lit.cfg.py [CMake] Add missing test dependency 2018-03-08 14:43:24 +00:00
lit.site.cfg.py.in