[PatternMatch] Generalize brc_match (NFC).

Preparation for D68013.

llvm-svn: 372881
This commit is contained in:
Florian Hahn 2019-09-25 14:53:06 +00:00
parent 71472a3eec
commit f8067c7f7c
1 changed files with 8 additions and 5 deletions

View File

@ -1334,11 +1334,13 @@ struct br_match {
inline br_match m_UnconditionalBr(BasicBlock *&Succ) { return br_match(Succ); }
template <typename Cond_t> struct brc_match {
template <typename Cond_t, typename TrueBlock_t, typename FalseBlock_t>
struct brc_match {
Cond_t Cond;
BasicBlock *&T, *&F;
TrueBlock_t T;
FalseBlock_t F;
brc_match(const Cond_t &C, BasicBlock *&t, BasicBlock *&f)
brc_match(const Cond_t &C, const TrueBlock_t &t, const FalseBlock_t &f)
: Cond(C), T(t), F(f) {}
template <typename OpTy> bool match(OpTy *V) {
@ -1353,8 +1355,9 @@ template <typename Cond_t> struct brc_match {
};
template <typename Cond_t>
inline brc_match<Cond_t> m_Br(const Cond_t &C, BasicBlock *&T, BasicBlock *&F) {
return brc_match<Cond_t>(C, T, F);
inline brc_match<Cond_t, BasicBlock *&, BasicBlock *&>
m_Br(const Cond_t &C, BasicBlock *&T, BasicBlock *&F) {
return brc_match<Cond_t, BasicBlock *&, BasicBlock *&>(C, T, F);
}
//===----------------------------------------------------------------------===//