diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-05-21 00:29:34 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-05-21 00:29:34 +0000 |
| commit | 72fcd5f597cd2cad167f92b6d74056ed8e4cdb99 (patch) | |
| tree | 4163a6ad0ffa665042e15ae0e7e42a1e4eb5f2fa /llvm/lib | |
| parent | 6d09380532bd4076b53283196ba20aab3345d551 (diff) | |
| download | bcm5719-llvm-72fcd5f597cd2cad167f92b6d74056ed8e4cdb99.tar.gz bcm5719-llvm-72fcd5f597cd2cad167f92b6d74056ed8e4cdb99.zip | |
AMDGPU: Implement ReverseBranchCondition
llvm-svn: 270296
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | 7 | ||||
| -rw-r--r-- | llvm/lib/Target/AMDGPU/SIInstrInfo.h | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp index 64416e80d59..7b232ba7b8b 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -1166,6 +1166,13 @@ unsigned SIInstrInfo::InsertBranch(MachineBasicBlock &MBB, return 2; } +bool SIInstrInfo::ReverseBranchCondition( + SmallVectorImpl<MachineOperand> &Cond) const { + assert(Cond.size() == 1); + Cond[0].setImm(-Cond[0].getImm()); + return false; +} + static void removeModOperands(MachineInstr &MI) { unsigned Opc = MI.getOpcode(); int Src0ModIdx = AMDGPU::getNamedOperandIdx(Opc, diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.h b/llvm/lib/Target/AMDGPU/SIInstrInfo.h index 4e37372a991..46705cd0b7d 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.h +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.h @@ -157,6 +157,9 @@ public: MachineBasicBlock *FBB, ArrayRef<MachineOperand> Cond, DebugLoc DL) const override; + bool ReverseBranchCondition( + SmallVectorImpl<MachineOperand> &Cond) const override; + bool areMemAccessesTriviallyDisjoint( MachineInstr *MIa, MachineInstr *MIb, AliasAnalysis *AA = nullptr) const override; |

