diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-07-15 00:58:15 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-07-15 00:58:15 +0000 |
commit | b91805ea2b3f8114e09bc0bb61b1a65f4cf1cecc (patch) | |
tree | 53532db689de66be200972719f5e56ca3f788d41 /llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp | |
parent | fa5a86a40373797c8f10bc2d57e60064b1623db1 (diff) | |
download | bcm5719-llvm-b91805ea2b3f8114e09bc0bb61b1a65f4cf1cecc.tar.gz bcm5719-llvm-b91805ea2b3f8114e09bc0bb61b1a65f4cf1cecc.zip |
AMDGPU: Fix not expanding control flow after some kill blocks
Also stop trying to insert skip blocks at end_cf. This
was inserting them at the end of the block which doesn't make
sense. The skip should be inserted at the beginning of the block
right after the end cf. Just remove this for now since no tests
seem to stress this and I think this can be handled more generally
later.
Fixes bug 28550
llvm-svn: 275510
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp b/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp index d82f26ac33a..ee1d5dae70b 100644 --- a/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp +++ b/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp @@ -748,13 +748,9 @@ bool SILowerControlFlow::runOnMachineFunction(MachineFunction &MF) { case AMDGPU::SI_END_CF: if (--Depth == 0 && HaveKill) { HaveKill = false; - - if (skipIfDead(MI, *NextBB)) { - NextBB = std::next(BI); - BE = MF.end(); - Next = MBB.end(); - } + // TODO: Insert skip if exec is 0? } + EndCf(MI); break; @@ -763,7 +759,6 @@ bool SILowerControlFlow::runOnMachineFunction(MachineFunction &MF) { if (skipIfDead(MI, *NextBB)) { NextBB = std::next(BI); BE = MF.end(); - Next = MBB.end(); } } else HaveKill = true; |