1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/test
Jay Foad 7622b45921 [AMDGPU] Remove dubious logic in bidirectional list scheduler
Summary:
pickNodeBidirectional tried to compare the best top candidate and the
best bottom candidate by examining TopCand.Reason and BotCand.Reason.
This is unsound because, after calling pickNodeFromQueue, Cand.Reason
does not reflect the most important reason why Cand was chosen. Rather
it reflects the most recent reason why it beat some other potential
candidate, which could have been for some low priority tie breaker
reason.

I have seen this cause problems where TopCand is a good candidate, but
because TopCand.Reason is ORDER (which is very low priority) it is
repeatedly ignored in favour of a mediocre BotCand. This is not how
bidirectional scheduling is supposed to work.

To fix this I changed the code to always compare TopCand and BotCand
directly, like the generic implementation of pickNodeBidirectional does.
This removes some uncommented AMDGPU-specific logic; if this logic turns
out to be important then perhaps it could be moved into an override of
tryCandidate instead.

Graphics shader benchmarking on gfx10 shows a lot more positive than
negative effects from this change.

Reviewers: arsenm, tstellar, rampitec, kzhuravl, vpykhtin, dstuttard, tpr, atrick, MatzeB

Subscribers: jvesely, wdng, nhaehnle, yaxunl, t-tye, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68338
2020-02-28 21:35:34 +00:00
..
Analysis [CostModel][X86] Improve extract/insert element costs (PR43605) 2020-02-27 15:54:13 +00:00
Assembler [Assembler] Allow assembling empty index with non-zero flags 2020-02-26 16:34:11 +03:00
Bindings Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
Bitcode
BugPoint
CodeGen [AMDGPU] Remove dubious logic in bidirectional list scheduler 2020-02-28 21:35:34 +00:00
DebugInfo [NFC] [Test commit] Testing commit access with new email 2020-02-28 12:01:52 +01:00
Demangle
Examples
ExecutionEngine Disable memory leak checking in a test to work around a bot failure 2020-02-26 14:51:50 -08:00
Feature Remove no un-necessary require for load_extension.ll 2020-02-26 08:29:09 +01:00
FileCheck
Instrumentation
Integer
JitListener
Linker
LTO [LTO][Legacy] Add new API to query Mach-O CPU (sub)type 2020-02-28 12:56:05 -08:00
MachineVerifier
MC [MC][ELF][ARM] Add relocations for some pc-relative fixups 2020-02-28 11:29:29 +00:00
Object
ObjectYAML
Other Use temporary directory for tests in D74346 2020-02-24 12:19:07 +01:00
Reduce
SafepointIRVerifier
Support
SymbolRewriter
TableGen
ThinLTO/X86
tools [LTO][Legacy] Add new API to query Mach-O CPU (sub)type 2020-02-28 12:56:05 -08:00
Transforms [VectorCombine] Fix assert on compare extract index 2020-02-28 10:37:08 -08:00
Unit
Verifier Visit previously unreachable nodes in the debug info metadata verifier. 2020-02-26 14:48:08 -08:00
YAMLParser
.clang-format
CMakeLists.txt Fix buildbots after recent GSYM commit. 2020-02-26 10:30:04 -08:00
lit.cfg.py Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
lit.site.cfg.py.in
TestRunner.sh