diff options
| author | Mark Lacey <mark.lacey@apple.com> | 2019-08-13 21:17:14 +0000 |
|---|---|---|
| committer | Mark Lacey <mark.lacey@apple.com> | 2019-08-13 21:17:14 +0000 |
| commit | b058249a4b3c11e006ac11a2bb91332d53ab1491 (patch) | |
| tree | a10c550f34a9404461aa3d6291e708cc69d158c3 | |
| parent | 4d82fa6895c4f9f80c26fa4ca30518e193651004 (diff) | |
| download | bcm5719-llvm-b058249a4b3c11e006ac11a2bb91332d53ab1491.tar.gz bcm5719-llvm-b058249a4b3c11e006ac11a2bb91332d53ab1491.zip | |
[GISel] Pass MachineRegisterInfo by const reference to matcher.
Summary: NFC.
Reviewers: aditya_nandakumar, volkan
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65971
llvm-svn: 368747
| -rw-r--r-- | llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h b/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h index 13eddd9539f..be12341f576 100644 --- a/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h +++ b/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h @@ -21,7 +21,7 @@ namespace llvm { namespace MIPatternMatch { template <typename Reg, typename Pattern> -bool mi_match(Reg R, MachineRegisterInfo &MRI, Pattern &&P) { +bool mi_match(Reg R, const MachineRegisterInfo &MRI, Pattern &&P) { return P.match(MRI, R); } @@ -30,7 +30,7 @@ template <typename SubPatternT> struct OneUse_match { SubPatternT SubPat; OneUse_match(const SubPatternT &SP) : SubPat(SP) {} - bool match(MachineRegisterInfo &MRI, unsigned Reg) { + bool match(const MachineRegisterInfo &MRI, unsigned Reg) { return MRI.hasOneUse(Reg) && SubPat.match(MRI, Reg); } }; @@ -71,7 +71,7 @@ inline operand_type_match m_Reg() { return operand_type_match(); } /// Matching combinators. template <typename... Preds> struct And { template <typename MatchSrc> - bool match(MachineRegisterInfo &MRI, MatchSrc &&src) { + bool match(const MachineRegisterInfo &MRI, MatchSrc &&src) { return true; } }; @@ -83,14 +83,14 @@ struct And<Pred, Preds...> : And<Preds...> { : And<Preds...>(std::forward<Preds>(preds)...), P(std::forward<Pred>(p)) { } template <typename MatchSrc> - bool match(MachineRegisterInfo &MRI, MatchSrc &&src) { + bool match(const MachineRegisterInfo &MRI, MatchSrc &&src) { return P.match(MRI, src) && And<Preds...>::match(MRI, src); } }; template <typename... Preds> struct Or { template <typename MatchSrc> - bool match(MachineRegisterInfo &MRI, MatchSrc &&src) { + bool match(const MachineRegisterInfo &MRI, MatchSrc &&src) { return false; } }; @@ -101,7 +101,7 @@ struct Or<Pred, Preds...> : Or<Preds...> { Or(Pred &&p, Preds &&... preds) : Or<Preds...>(std::forward<Preds>(preds)...), P(std::forward<Pred>(p)) {} template <typename MatchSrc> - bool match(MachineRegisterInfo &MRI, MatchSrc &&src) { + bool match(const MachineRegisterInfo &MRI, MatchSrc &&src) { return P.match(MRI, src) || Or<Preds...>::match(MRI, src); } }; @@ -175,7 +175,8 @@ struct BinaryOp_match { RHS_P R; BinaryOp_match(const LHS_P &LHS, const RHS_P &RHS) : L(LHS), R(RHS) {} - template <typename OpTy> bool match(MachineRegisterInfo &MRI, OpTy &&Op) { + template <typename OpTy> + bool match(const MachineRegisterInfo &MRI, OpTy &&Op) { MachineInstr *TmpMI; if (mi_match(Op, MRI, m_MInstr(TmpMI))) { if (TmpMI->getOpcode() == Opcode && TmpMI->getNumOperands() == 3) { @@ -242,7 +243,8 @@ template <typename SrcTy, unsigned Opcode> struct UnaryOp_match { SrcTy L; UnaryOp_match(const SrcTy &LHS) : L(LHS) {} - template <typename OpTy> bool match(MachineRegisterInfo &MRI, OpTy &&Op) { + template <typename OpTy> + bool match(const MachineRegisterInfo &MRI, OpTy &&Op) { MachineInstr *TmpMI; if (mi_match(Op, MRI, m_MInstr(TmpMI))) { if (TmpMI->getOpcode() == Opcode && TmpMI->getNumOperands() == 2) { @@ -323,7 +325,7 @@ struct CheckType { LLT Ty; CheckType(const LLT &Ty) : Ty(Ty) {} - bool match(MachineRegisterInfo &MRI, unsigned Reg) { + bool match(const MachineRegisterInfo &MRI, unsigned Reg) { return MRI.getType(Reg) == Ty; } }; |

