1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/lib
Matt Arsenault f1ba4465de AMDGPU: Use kill instruction to hint soft clause live ranges
Previously we would use a bundle to hint the register allocator to not
overwrite the pointers in a sequence of loads to avoid breaking soft
clauses. This bundling was based on a fuzzy register pressure
heuristic, so we could not guarantee using more registers than are
really available. This would result in register allocator failing on
unsatisfiable bundles. Use a kill to artificially extend the live
ranges, so we can always succeed at register allocation even if it
means extra spills in the worst case.

This seems to capture most of the benefit of the bundle while avoiding
most of the risk presented by the bundle. However the lit tests do
show a handful of regressions. In some cases with sequences of
volatile loads, unused load components end up getting reallocated to
the next load which forces a wait between. There are also a few small
scheduling regressions where a hazard used to be avoided, and one
spill torture test which for some reason nearly doubles the stack
usage. There is also a bit of noise from leftover kills (it may make
sense for post-RA pseudos to strip all of these out).
2021-02-26 18:26:40 -05:00
..
Analysis Be more mathematicly precise about definition of recurrence [NFC] 2021-02-26 11:22:01 -08:00
AsmParser Encode alignment attribute for cmpxchg 2021-02-11 15:17:50 -05:00
BinaryFormat
Bitcode Fix unstable SmallPtrSet iteration issues due to collectUsedGlobalVariables 2021-02-23 16:09:05 -08:00
Bitstream
CodeGen [DAGCombiner] Optimize SMULO/UMULO if we can prove that overflow is impossible. 2021-02-26 14:50:03 -08:00
DebugInfo [PDB] Fix unsigned integer overflow 2021-02-26 11:26:53 -05:00
Demangle [Demangle] Support demangling Swift calling convention in MS demangler. 2021-01-27 13:24:54 -08:00
DWARFLinker [dsymutil][DWARFLinker][NFC] make AddressManager not depending on the order of checks for relocations. 2021-01-31 16:34:10 +03:00
ExecutionEngine [Orc] Use extensible RTTI for the orc::ObjectLayer class hierarchy 2021-02-26 13:13:05 +01:00
Extensions
FileCheck
Frontend [OpenMPIRBuilder] Implement collapseLoops. 2021-02-03 19:12:02 -06:00
Fuzzer
FuzzMutate
InterfaceStub [elfabi] Fix a bug when .dynsym contains no non-local symbol 2021-02-19 11:36:53 -08:00
IR Add Alignment argument to IRBuilder CreateAtomicRMW and CreateAtomicCmpXchg. 2021-02-25 18:29:42 -05:00
IRReader
LineEditor
Linker [llvm-link] fix IRMover returning wrong modified vector type 2021-02-22 11:29:42 +00:00
LTO [lto] Enable new PM when the PM config is non-empty 2021-02-15 20:49:09 +01:00
MC [MC] Allow .cfi_sections with empty section list 2021-02-25 22:29:49 -08:00
MCA
Object collectUsedGlobalVariables: migrate SmallPtrSetImpl overload to SmallVecImpl overload after D97128 2021-02-23 16:09:06 -08:00
ObjectYAML [obj2yaml,yaml2obj] Add NumBlocks to the BBAddrMapEntry yaml field. 2021-02-22 18:08:26 -08:00
Option [clang][cli] NFC: Remove ArgList infrastructure for recording queries 2021-02-25 13:53:24 +01:00
Passes [ThinLTO][NewPM] Clean up dead code under -O0 2021-02-24 17:08:57 -08:00
ProfileData [llvm-profdata] Emit Error when Invalid MemOpSize Section is Created by llvm-profdata 2021-02-23 12:51:54 -08:00
Remarks [llvm] Use append_range (NFC) 2021-01-27 23:25:41 -08:00
Support [llvm] Check availability for os_signpost 2021-02-24 16:27:31 -08:00
TableGen Revert "[TableGen] Improve algorithms for processing template arguments" 2021-02-18 09:26:26 -05:00
Target AMDGPU: Use kill instruction to hint soft clause live ranges 2021-02-26 18:26:40 -05:00
Testing [clangd] Implement semanticTokens modifiers 2021-02-09 16:31:22 +01:00
TextAPI [llvm][TextAPI] add equality operator for InterfaceFile 2021-02-18 11:53:08 -08:00
ToolDrivers llvm-lib: Pull error printing code out of two functions 2021-01-26 19:13:30 -05:00
Transforms [dfsan] Record dfsan metadata in globals 2021-02-26 14:42:46 -08:00
WindowsManifest
XRay
CMakeLists.txt