14#ifndef LLVM_SUPPORT_PATTERNMATCHHELPERS_H
15#define LLVM_SUPPORT_PATTERNMATCHHELPERS_H
22 template <
typename ITy>
bool match(ITy *)
const {
return false; }
26template <
typename Ty,
typename... Tys>
32 template <
typename ITy>
bool match(ITy *V)
const {
39 template <
typename ITy>
bool match(ITy *)
const {
return true; }
43template <
typename Ty,
typename... Tys>
49 template <
typename ITy>
bool match(ITy *V)
const {
55template <
typename... Ty>
61template <
typename... Ty>
68 template <
typename ArgTy>
bool match(
const ArgTy *V)
const {
78template <
typename... To,
typename SubPattern>
79inline auto m_Isa(
const SubPattern &
P) {
match_isa< To... > m_Isa()
match_combine_or< Ty... > m_CombineOr(const Ty &...Ps)
Combine pattern matchers matching any of Ps patterns.
match_combine_and< Ty... > m_CombineAnd(const Ty &...Ps)
Combine pattern matchers matching all of Ps patterns.
bool isa(const From &Val)
isa<X> - Return true if the parameter to the template is an instance of one of the template type argu...
match_combine_and(const Ty &P, const Tys &...Ps)
Matching and combinator leaf case.
match_combine_or(const Ty &P, const Tys &...Ps)
Matching or combinator leaf case.
A match-wrapper around isa.
bool match(const ArgTy *V) const