#include "llvm/TableGen/SetTheory.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/SMLoc.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TableGen/Error.h"
#include "llvm/TableGen/Record.h"
#include <algorithm>
#include <cstdint>
#include <string>
#include <utility>
usingnamespacellvm;
namespace {
RecSet;
RecVec;
struct AddOp : public SetTheory::Operator { … };
struct SubOp : public SetTheory::Operator { … };
struct AndOp : public SetTheory::Operator { … };
struct SetIntBinOp : public SetTheory::Operator { … };
struct ShlOp : public SetIntBinOp { … };
struct TruncOp : public SetIntBinOp { … };
struct RotOp : public SetIntBinOp { … };
struct DecimateOp : public SetIntBinOp { … };
struct InterleaveOp : public SetTheory::Operator { … };
struct SequenceOp : public SetTheory::Operator { … };
struct FieldExpander : public SetTheory::Expander { … };
}
void SetTheory::Operator::anchor() { … }
void SetTheory::Expander::anchor() { … }
SetTheory::SetTheory() { … }
void SetTheory::addOperator(StringRef Name, std::unique_ptr<Operator> Op) { … }
void SetTheory::addExpander(StringRef ClassName, std::unique_ptr<Expander> E) { … }
void SetTheory::addFieldExpander(StringRef ClassName, StringRef FieldName) { … }
void SetTheory::evaluate(const Init *Expr, RecSet &Elts, ArrayRef<SMLoc> Loc) { … }
const RecVec *SetTheory::expand(const Record *Set) { … }