My Project
|
#include <ConstraintAnalysisGraph.h>
Public Types | |
enum | TypeTransformRule { TypeTransformRule::Direct, TypeTransformRule::DirectStorage, TypeTransformRule::ExpressedOnly } |
![]() | |
enum | Kind { Kind::Anchor, Kind::OperandAnchor, Kind::ResultAnchor, Kind::LastAnchor = ResultAnchor, Kind::Constraint, Kind::SolveUniformConstraint, Kind::UniformPropagateExplicitScale, Kind::LastConstraint = UniformPropagateExplicitScale } |
using | node_vector = SmallVector< CAGNode *, 1 > |
using | iterator = node_vector::iterator |
using | const_iterator = node_vector::const_iterator |
Public Member Functions | |
CAGUniformMetadata & | getUniformMetadata () |
Metadata for solving uniform quantization params. More... | |
const CAGUniformMetadata & | getUniformMetadata () const |
virtual Operation * | getOp () const =0 |
virtual Value | getValue () const =0 |
void | propagate (SolverContext &solverContext, const TargetConfiguration &config) override |
void | printLabel (raw_ostream &os) const override |
Prints the node label, suitable for one-line display. More... | |
Type | getTransformedType () |
TypeTransformRule | getTypeTransformRule () const |
void | setTypeTransformRule (TypeTransformRule r) |
Type | getOriginalType () const |
![]() | |
virtual | ~CAGNode ()=default |
Kind | getKind () const |
int | getNodeId () const |
Unique id of the node within the slice. More... | |
bool | isDirty () const |
Whether the node is dirty, requiring one or more calls to propagate(). More... | |
void | markDirty () |
void | clearDirty () |
const_iterator | begin () const |
Iterator over this node's children (outgoing) nodes. More... | |
const_iterator | end () const |
iterator | begin () |
iterator | end () |
const_iterator | incoming_begin () const |
Iterator over this parents (incoming) nodes. More... | |
const_iterator | incoming_end () const |
iterator | incoming_begin () |
iterator | incoming_end () |
template<typename T > | |
void | findChildrenOfKind (SmallVectorImpl< T *> &found) |
void | replaceIncoming (CAGNode *otherNode) |
void | addOutgoing (CAGNode *toNode) |
bool | isOrphan () const |
Whether this node is an orphan (has no incoming or outgoing connections). More... | |
Static Public Member Functions | |
static bool | classof (const CAGNode *n) |
Protected Member Functions | |
CAGAnchorNode (Kind kind, Type originalType) | |
![]() | |
CAGNode (Kind kind) | |
Anchor nodes represent points in the source IR where we may choose to introduce a type transition. These include operands, results, arguments returns, etc.
|
inlinestatic |
|
pure virtual |
Implemented in mlir::quantizer::CAGResultAnchor, and mlir::quantizer::CAGOperandAnchor.
|
inline |
Gets the Type that was defined for this anchor at the time of construction.
Type CAGAnchorNode::getTransformedType | ( | ) |
Given the anchor metadata and resolved solutions, chooses the most salient and returns an appropriate type to represent it.
|
inline |
|
inline |
Metadata for solving uniform quantization params.
|
inline |
|
pure virtual |
Implemented in mlir::quantizer::CAGResultAnchor, and mlir::quantizer::CAGOperandAnchor.
|
overridevirtual |
Prints the node label, suitable for one-line display.
Reimplemented from mlir::quantizer::CAGNode.
Reimplemented in mlir::quantizer::CAGResultAnchor, and mlir::quantizer::CAGOperandAnchor.
|
overridevirtual |
Reimplemented from mlir::quantizer::CAGNode.
|
inline |