LLVM 20.0.0git
|
#include "llvm/TableGen/SetTheory.h"
Classes | |
class | Expander |
Expander - A callback function that can transform a Record representing a set into a fully expanded list of elements. More... | |
class | Operator |
Operator - A callback representing a DAG operator. More... | |
Public Types | |
using | RecVec = std::vector< Record * > |
using | RecSet = SmallSetVector< Record *, 16 > |
Public Member Functions | |
SetTheory () | |
Create a SetTheory instance with only the standard operators. | |
void | addExpander (StringRef ClassName, std::unique_ptr< Expander >) |
addExpander - Add an expander for Records with the named super class. | |
void | addFieldExpander (StringRef ClassName, StringRef FieldName) |
addFieldExpander - Add an expander for ClassName that simply evaluates FieldName in the Record to get the set elements. | |
void | addOperator (StringRef Name, std::unique_ptr< Operator >) |
addOperator - Add a DAG operator. | |
void | evaluate (Init *Expr, RecSet &Elts, ArrayRef< SMLoc > Loc) |
evaluate - Evaluate Expr and append the resulting set to Elts. | |
template<typename Iter > | |
void | evaluate (Iter begin, Iter end, RecSet &Elts, ArrayRef< SMLoc > Loc) |
evaluate - Evaluate a sequence of Inits and append to Elts. | |
const RecVec * | expand (Record *Set) |
expand - Expand a record into a set of elements if possible. | |
Definition at line 65 of file SetTheory.h.
using llvm::SetTheory::RecSet = SmallSetVector<Record *, 16> |
Definition at line 68 of file SetTheory.h.
using llvm::SetTheory::RecVec = std::vector<Record *> |
Definition at line 67 of file SetTheory.h.
SetTheory::SetTheory | ( | ) |
Create a SetTheory instance with only the standard operators.
Definition at line 256 of file SetTheory.cpp.
References addOperator().
addExpander - Add an expander for Records with the named super class.
Definition at line 273 of file SetTheory.cpp.
Referenced by addFieldExpander().
addFieldExpander - Add an expander for ClassName that simply evaluates FieldName in the Record to get the set elements.
That is all that is needed for a class like:
class Set<dag d> { dag Elts = d; }
Definition at line 277 of file SetTheory.cpp.
References addExpander().
addOperator - Add a DAG operator.
Definition at line 269 of file SetTheory.cpp.
References Name.
Referenced by SetTheory().
evaluate - Evaluate Expr and append the resulting set to Elts.
Definition at line 281 of file SetTheory.cpp.
References evaluate(), expand(), llvm::Init::getAsString(), llvm::DagInit::getOperator(), I, llvm::SetVector< T, Vector, Set, N >::insert(), and llvm::PrintFatalError().
Referenced by evaluate().
|
inline |
evaluate - Evaluate a sequence of Inits and append to Elts.
Definition at line 132 of file SetTheory.h.
References evaluate().
expand - Expand a record into a set of elements if possible.
Return a pointer to the expanded elements, or NULL if Set cannot be expanded further.
Definition at line 307 of file SetTheory.cpp.
References llvm::SetVector< T, Vector, Set, N >::begin(), llvm::SetVector< T, Vector, Set, N >::end(), and I.
Referenced by evaluate().