14 #ifndef MLIR_TOOLS_MLIRQUERY_MATCHER_VARIANTVALUE_H
15 #define MLIR_TOOLS_MLIRQUERY_MATCHER_VARIANTVALUE_H
19 #include "llvm/ADT/StringRef.h"
31 std::optional<DynMatcher>
59 bool isNull()
const {
return !value; }
69 : value(std::move(value)) {}
72 class VariadicOpPayload;
74 std::shared_ptr<const Payload> value;
99 void setString(
const llvm::StringRef &
string);
117 explicit operator bool()
const {
return hasValue(); }
118 bool hasValue()
const {
return type != ValueType::Nothing; }
124 enum class ValueType {
137 VariantMatcher *Matcher;
static VariantMatcher SingleMatcher(DynMatcher matcher)
std::optional< DynMatcher > getDynMatcher() const
std::string getTypeAsString() const
static VariantMatcher VariadicOperatorMatcher(DynMatcher::VariadicOperator varOp, ArrayRef< VariantMatcher > args)
std::string getTypeAsString() const
VariantValue & operator=(const VariantValue &other)
const VariantMatcher & getMatcher() const
void setMatcher(const VariantMatcher &matcher)
const llvm::StringRef & getString() const
int64_t getSigned() const
void setSigned(int64_t signedValue)
void setString(const llvm::StringRef &string)
void setBoolean(bool booleanValue)
Computes the backward-slice of all transitive defs reachable from rootOp, if innerMatcher matches.
internal::SourceRange range