1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/test/CodeGen
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
..
AArch64 AArch64: expand cmpxchg after regalloc at -O0. 2016-04-14 17:03:29 +00:00
AMDGPU AMDGPU: Remove SIFixSGPRLiveRanges pass 2016-04-14 17:42:29 +00:00
ARM [CodeGen] Teach LLVM how to lower @llvm.{min,max}num to {MIN,MAX}NAN 2016-04-14 07:13:24 +00:00
BPF
CPP
Generic
Hexagon Revert r265817 2016-04-08 18:15:37 +00:00
Inputs
Lanai [lanai] Add areMemAccessesTriviallyDisjoint, getMemOpBaseRegImmOfs and getMemOpBaseRegImmOfsWidth. 2016-04-14 16:47:42 +00:00
Mips Summary: 2016-04-14 13:43:17 +00:00
MIR CodeGen: Clear the MFI's save and restore point after PrologEpilogInserter 2016-04-12 23:21:53 +00:00
MSP430
NVPTX
PowerPC [ppc] add tests to show potential andc optimization 2016-04-13 23:23:30 +00:00
SPARC
SystemZ [SystemZ] Support conditional indirect sibling calls via BCR 2016-04-11 12:12:32 +00:00
Thumb Revert r265817 2016-04-08 18:15:37 +00:00
Thumb2 ARM: use r7 as the frame-pointer on all MachO targets. 2016-04-11 22:27:40 +00:00
WebAssembly [WebAssembly] Fix debug info in reg-stackify.ll test 2016-04-12 20:12:05 +00:00
WinEH
X86 Revert "Support arbitrary addrspace pointers in masked load/store intrinsics" 2016-04-14 08:47:17 +00:00
XCore