|
LLVM
3.7.0
|
#include <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 | |
| typedef std::vector< Record * > | RecVec |
| typedef SmallSetVector< Record *, 16 > | RecSet |
Public Member Functions | |
| SetTheory () | |
| Create a SetTheory instance with only the standard operators. More... | |
| void | addExpander (StringRef ClassName, std::unique_ptr< Expander >) |
| addExpander - Add an expander for Records with the named super class. More... | |
| void | addFieldExpander (StringRef ClassName, StringRef FieldName) |
| addFieldExpander - Add an expander for ClassName that simply evaluates FieldName in the Record to get the set elements. More... | |
| void | addOperator (StringRef Name, std::unique_ptr< Operator >) |
| addOperator - Add a DAG operator. More... | |
| void | evaluate (Init *Expr, RecSet &Elts, ArrayRef< SMLoc > Loc) |
| evaluate - Evaluate Expr and append the resulting set to Elts. More... | |
| template<typename Iter > | |
| void | evaluate (Iter begin, Iter end, RecSet &Elts, ArrayRef< SMLoc > Loc) |
| evaluate - Evaluate a sequence of Inits and append to Elts. More... | |
| const RecVec * | expand (Record *Set) |
| expand - Expand a record into a set of elements if possible. More... | |
Definition at line 63 of file SetTheory.h.
| typedef SmallSetVector<Record*, 16> llvm::SetTheory::RecSet |
Definition at line 66 of file SetTheory.h.
| typedef std::vector<Record*> llvm::SetTheory::RecVec |
Definition at line 65 of file SetTheory.h.
| SetTheory::SetTheory | ( | ) |
Create a SetTheory instance with only the standard operators.
Definition at line 247 of file SetTheory.cpp.
References addOperator().
addExpander - Add an expander for Records with the named super class.
Definition at line 264 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 268 of file SetTheory.cpp.
References addExpander().
addOperator - Add a DAG operator.
Definition at line 260 of file SetTheory.cpp.
Referenced by SetTheory().
evaluate - Evaluate Expr and append the resulting set to Elts.
Definition at line 272 of file SetTheory.cpp.
References llvm::tgtok::Def, llvm::dyn_cast(), expand(), llvm::Init::getAsString(), llvm::DagInit::getOperator(), I, llvm::SetVector< T, Vector, Set >::insert(), and llvm::PrintFatalError().
Referenced by evaluate().
|
inline |
evaluate - Evaluate a sequence of Inits and append to Elts.
Definition at line 128 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 298 of file SetTheory.cpp.
References llvm::SetVector< T, Vector, Set >::begin(), llvm::SetVector< T, Vector, Set >::end(), getName(), llvm::Record::getSuperClasses(), I, and llvm::PPCISD::SC.
Referenced by evaluate().
1.8.6