1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
llvm-mirror/test
Nicolai Haehnle 014104e476 AMDGPU: Remove SIFixSGPRLiveRanges pass
Summary:
This pass is unnecessary and overly conservative. It was motivated by
situations like

  def %vreg0:SGPR_32
  ...
if-block:
  ..
  def %vreg1:SGPR_32
  ...
else-block:
  ...
  use %vreg0:SGPR_32
  ...

and similar situations with uses after the non-uniform control flow, where
we are not allowed to assign %vreg0 and %vreg1 to the same physical register,
even though in the original, thread/workitem-based CFG, it looks like the
live ranges of these registers do not overlap.

However, by the time register allocation runs, we have moved to a wave-based
CFG that accurately represents the fact that the wave may run through both
the if- and the else-block. So the live ranges of %vreg0 and %vreg1 already
overlap even without the SIFixSGPRLiveRanges pass.

In addition to proving this change correct, I have tested it with Piglit
and a small number of other tests.

Reviewers: arsenm, tstellarAMD

Subscribers: MatzeB, arsenm, llvm-commits

Differential Revision: http://reviews.llvm.org/D19041

llvm-svn: 266345
2016-04-14 17:42:29 +00:00
..
Analysis [SCEV][LAA] Add tests for SCEV expression transformations performed during LAA 2016-04-14 16:08:45 +00:00
Assembler Revert "Support arbitrary addrspace pointers in masked load/store intrinsics" 2016-04-14 08:47:17 +00:00
Bindings [OCaml] Expose the LLVM diagnostic handler 2016-04-10 13:55:53 +00:00
Bitcode Revert "Make aliases explicit in the summary" 2016-04-13 17:20:07 +00:00
BugPoint Add a missing DICompileUnit to testcase. 2016-04-11 23:30:29 +00:00
CodeGen AMDGPU: Remove SIFixSGPRLiveRanges pass 2016-04-14 17:42:29 +00:00
DebugInfo Fix some display bugs in llvm-pdbdump. 2016-04-11 20:39:17 +00:00
Examples
ExecutionEngine
Feature
FileCheck
Instrumentation [sancov] enabling coverage edge pruning by default. 2016-04-06 23:24:37 +00:00
Integer
JitListener
LibDriver LibDriver: Silently do nothing when provided no inputs. 2016-04-13 19:36:04 +00:00
Linker Move summary creation out of llvm-as into opt 2016-04-12 21:35:18 +00:00
LTO Refactor the InternalizePass into a helper class, and expose it through a public free function (NFC) 2016-04-13 05:25:08 +00:00
MC Summary: 2016-04-14 13:43:17 +00:00
Object Start to add real error messages for malformed Mach-O files. 2016-04-13 21:17:58 +00:00
Other
SymbolRewriter
TableGen
ThinLTO/X86 Move summary creation out of llvm-as into opt 2016-04-12 21:35:18 +00:00
tools Move summary creation out of llvm-as into opt 2016-04-12 21:35:18 +00:00
Transforms Revert "Support arbitrary addrspace pointers in masked load/store intrinsics" 2016-04-14 08:47:17 +00:00
Unit
Verifier Revert "[IR/Verifier] Each DISubprogram with isDefinition: true must belong to a CU." 2016-04-13 18:08:07 +00:00
YAMLParser
.clang-format
CMakeLists.txt Moving llvm-test-depends and test-depends into the Tests folder; NFC, this simply cleans up the generated solution so that these targets don't live in the root folder of the IDE. 2016-04-12 15:09:14 +00:00
lit.cfg test: Always treat .mir files as tests even outside of CodeGen/MIR 2016-04-04 21:23:44 +00:00
lit.site.cfg.in
TestRunner.sh