llvm-project/llvm/test
Marek Olsak b953cc36e2 AMDGPU: Merge S_BUFFER_LOAD_DWORD_IMM into x2, x4
Summary:
Only constant offsets (*_IMM opcodes) are merged.
It reuses code for LDS load/store merging.
It relies on the scheduler to group loads.

The results are mixed, I think they are mostly positive. Most shaders are
affected, so here are total stats only:

 SGPRS: 2072198 -> 2151462 (3.83 %)
 VGPRS: 1628024 -> 1634612 (0.40 %)
 Spilled SGPRs: 7883 -> 8942 (13.43 %)
 Spilled VGPRs: 97 -> 101 (4.12 %)
 Scratch size: 1488 -> 1492 (0.27 %) dwords per thread
 Code Size: 60222620 -> 52940672 (-12.09 %) bytes
 Max Waves: 374337 -> 373066 (-0.34 %)

There is 13.4% increase in SGPR spilling, DiRT Showdown spills a few more
VGPRs (now 37), but 12% decrease in code size.

These are the new stats for SGPR spilling. We already spill a lot SGPRs,
so it's uncertain whether more spilling will make any difference since
SGPRs are always spilled to VGPRs:

 SGPR SPILLING APPS   Shaders SpillSGPR AvgPerSh
 alien_isolation         2938       100      0.0
 batman_arkham_origins    589         6      0.0
 bioshock-infinite       1769         4      0.0
 borderlands2            3968        22      0.0
 counter_strike_glob..   1142        60      0.1
 deus_ex_mankind_div..   1410        79      0.1
 dirt-showdown            533         4      0.0
 dirt_rally               364      1163      3.2
 divinity                1052         2      0.0
 dota2                   1747         7      0.0
 f1-2015                  776      1515      2.0
 grid_autosport          1767      1505      0.9
 hitman                  1413       273      0.2
 left_4_dead_2           1762         4      0.0
 life_is_strange         1296        26      0.0
 mad_max                  358        96      0.3
 metro_2033_redux        2670        60      0.0
 payday2                 1362        22      0.0
 portal                   474         3      0.0
 saints_row_iv           1704         8      0.0
 serious_sam_3_bfe        392      1348      3.4
 shadow_of_mordor        1418        12      0.0
 shadow_warrior          3956       239      0.1
 talos_principle          324      1735      5.4
 thea                     172        17      0.1
 tomb_raider             1449       215      0.1
 total_war_warhammer      242        56      0.2
 ue4_effects_cave         295        55      0.2
 ue4_elemental            572        12      0.0
 unigine_tropics          210        56      0.3
 unigine_valley           278       152      0.5
 victor_vran             1262        84      0.1
 yofrankie                 82         2      0.0

Reviewers: arsenm, nhaehnle

Subscribers: kzhuravl, wdng, yaxunl, dstuttard, tpr, llvm-commits, t-tye

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

llvm-svn: 317751
2017-11-09 01:52:23 +00:00
..
Analysis [LV][X86] update the cost of interleaving mem. access of floats 2017-11-06 10:56:20 +00:00
Assembler [IR] redefine 'UnsafeAlgebra' / 'reassoc' fast-math-flags and add 'trans' fast-math-flag 2017-11-06 16:27:15 +00:00
Bindings [LLVM-C] Expose functions to create debug locations via DIBuilder. 2017-11-01 22:18:52 +00:00
Bitcode [IR] redefine 'UnsafeAlgebra' / 'reassoc' fast-math-flags and add 'trans' fast-math-flag 2017-11-06 16:27:15 +00:00
BugPoint
CodeGen AMDGPU: Merge S_BUFFER_LOAD_DWORD_IMM into x2, x4 2017-11-09 01:52:23 +00:00
DebugInfo Let replaceVTableHolder accept any type. 2017-11-08 22:04:43 +00:00
Examples
ExecutionEngine [mips] Adds support for R_MIPS_26, HIGHER, HIGHEST relocations in RuntimeDyld. 2017-10-22 09:47:41 +00:00
Feature
FileCheck Add a -D flag to FileCheck to define variables 2017-11-07 13:24:44 +00:00
Instrumentation Fix for Bug 34475 - LOCK/REP/REPNE prefixes emitted as instruction on their own. 2017-11-03 15:25:13 +00:00
Integer
JitListener
LTO [LTO][ThinLTO] Use the linker resolutions to mark global values as dso_local. 2017-11-04 17:04:39 +00:00
Linker Verifier: Ignore CUs pulled in by ODR-uniqued types. 2017-10-18 01:11:01 +00:00
MC [AArch64][SVE] Asm: Add support for (ADD|SUB)_ZZZ 2017-11-07 16:58:13 +00:00
Object [test] Add test files that were missed from SVN r317459 2017-11-06 07:36:17 +00:00
ObjectYAML [ObjectYAML] Handle SHF_COMPRESSED 2017-10-03 06:35:55 +00:00
Other Recommit r317351 : Add CallSiteSplitting pass 2017-11-03 20:41:16 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen [globalisel][tablegen] Add support for multi-insn emission 2017-11-01 19:57:57 +00:00
ThinLTO/X86 [LTO][ThinLTO] Use the linker resolutions to mark global values as dso_local. 2017-11-04 17:04:39 +00:00
Transforms Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
Unit [lit] Make lit support config files with .py extension. 2017-09-21 00:24:52 +00:00
Verifier Move the stripping of invalid debug info from the Verifier to AutoUpgrade. 2017-10-02 18:31:29 +00:00
YAMLParser
tools [cfi-verify] Adds blacklist blame behaviour to cfi-verify. 2017-11-09 00:18:31 +00:00
.clang-format
CMakeLists.txt Add test dependency on llvm-cfi-verify to fix up the build breakages on sanitizers. 2017-11-01 00:49:45 +00:00
TestRunner.sh
lit.cfg.py llvm/test/lit.cfg.py: Don't set the feature "llvm-64-bits" if -m32 is specified. 2017-11-04 06:55:55 +00:00
lit.site.cfg.py.in Reland "Add feature to determine if host architecture is 64-bit in llvm-lit" 2017-11-02 23:45:51 +00:00