diff options
author | Vincent Lejeune <vljn@ovi.com> | 2013-07-31 19:31:14 +0000 |
---|---|---|
committer | Vincent Lejeune <vljn@ovi.com> | 2013-07-31 19:31:14 +0000 |
commit | 0c5ed2b43708dc3e53540baa2e3d2406ff851e3b (patch) | |
tree | 42937542a012ae0385f761f2fc86ac0454620e5a /llvm/lib/Target/R600/R600ControlFlowFinalizer.cpp | |
parent | 48d94c8d7669ec89ce445493558c290474dd87e2 (diff) | |
download | llvm-0c5ed2b43708dc3e53540baa2e3d2406ff851e3b.zip llvm-0c5ed2b43708dc3e53540baa2e3d2406ff851e3b.tar.gz llvm-0c5ed2b43708dc3e53540baa2e3d2406ff851e3b.tar.bz2 |
R600: Remove predicated_break inst
We were using two instructions for similar purpose : break and
predicated break. Only predicated_break was emitted and it was
lowered at R600ControlFlowFinalizer to JUMP;CF_BREAK;POP.
This commit simplify the situation by making AMDILCFGStructurizer
emit IF_PREDICATE;BREAK;ENDIF; instead of predicated_break (which
is now removed).
There is no functionality change.
llvm-svn: 187510
Diffstat (limited to 'llvm/lib/Target/R600/R600ControlFlowFinalizer.cpp')
-rw-r--r-- | llvm/lib/Target/R600/R600ControlFlowFinalizer.cpp | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/llvm/lib/Target/R600/R600ControlFlowFinalizer.cpp b/llvm/lib/Target/R600/R600ControlFlowFinalizer.cpp index b69d38b..cc45891 100644 --- a/llvm/lib/Target/R600/R600ControlFlowFinalizer.cpp +++ b/llvm/lib/Target/R600/R600ControlFlowFinalizer.cpp @@ -457,18 +457,11 @@ public: MI->eraseFromParent(); break; } - case AMDGPU::PREDICATED_BREAK: { - CurrentStack--; - CfCount += 3; - BuildMI(MBB, MI, MBB.findDebugLoc(MI), getHWInstrDesc(CF_JUMP)) - .addImm(CfCount) - .addImm(1); + case AMDGPU::BREAK: { + CfCount ++; MachineInstr *MIb = BuildMI(MBB, MI, MBB.findDebugLoc(MI), getHWInstrDesc(CF_LOOP_BREAK)) .addImm(0); - BuildMI(MBB, MI, MBB.findDebugLoc(MI), getHWInstrDesc(CF_POP)) - .addImm(CfCount) - .addImm(1); LoopStack.back().second.insert(MIb); MI->eraseFromParent(); break; |