aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen
diff options
context:
space:
mode:
authorValery Pykhtin <Valery.Pykhtin@amd.com>2019-02-08 11:59:48 +0000
committerValery Pykhtin <Valery.Pykhtin@amd.com>2019-02-08 11:59:48 +0000
commit3a178e01c44388d0186a39629f2a957fd54b03f1 (patch)
tree99d175b5d2427bad67ff2985469695dd0e91e552 /include/llvm/CodeGen
parent2e390e6fde49dfa8c973a0889ccf62433a0b49df (diff)
downloadllvm-3a178e01c44388d0186a39629f2a957fd54b03f1.tar.gz
[AMDGPU] Fix DPP combiner
Differential revision: https://reviews.llvm.org/D55444 dpp move with uses and old reg initializer should be in the same BB. bound_ctrl:0 is only considered when bank_mask and row_mask are fully enabled (0xF). Otherwise the old register value is checked for identity. Added add, subrev, and, or instructions to the old folding function. Kill flag is cleared for the src0 (DPP register) as it may be copied into more than one user. The pass is still disabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353513 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen')
-rw-r--r--include/llvm/CodeGen/TargetInstrInfo.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/TargetInstrInfo.h b/include/llvm/CodeGen/TargetInstrInfo.h
index e6418fbe82d..b732be625de 100644
--- a/include/llvm/CodeGen/TargetInstrInfo.h
+++ b/include/llvm/CodeGen/TargetInstrInfo.h
@@ -428,6 +428,13 @@ public:
RegSubRegPair(unsigned Reg = 0, unsigned SubReg = 0)
: Reg(Reg), SubReg(SubReg) {}
+
+ bool operator==(const RegSubRegPair& P) const {
+ return Reg == P.Reg && SubReg == P.SubReg;
+ }
+ bool operator!=(const RegSubRegPair& P) const {
+ return !(*this == P);
+ }
};
/// A pair composed of a pair of a register and a sub-register index,