Lines Matching refs:SENode
39 // contains a vector of pointers to its children and each subclass of SENode
43 class SENode {
55 using ChildContainerType = std::vector<SENode*>;
57 explicit SENode(ScalarEvolutionAnalysis* parent_analysis)
62 virtual ~SENode() {}
64 virtual inline void AddChild(SENode* child) {
72 auto find_first_less_than = [child](const SENode* node) {
87 // Dump the SENode and its immediate children, if |recurse| is true then it
93 bool operator==(const SENode& other) const;
96 bool operator!=(const SENode& other) const;
99 inline SENode* GetChild(size_t index) { return children_[index]; }
100 inline const SENode* GetChild(size_t index) const { return children_[index]; }
116 // Collect all the recurrent nodes in this SENode
134 // Collect all the value unknown nodes in this SENode
155 using dag_iterator = TreeDFIterator<SENode>;
156 using const_dag_iterator = TreeDFIterator<const SENode>;
208 size_t operator()(const std::unique_ptr<SENode>& node) const;
209 size_t operator()(const SENode* node) const;
213 class SEConstantNode : public SENode {
216 : SENode(parent_analysis), literal_value_(value) {}
225 inline void AddChild(SENode*) final {
239 class SERecurrentNode : public SENode {
242 : SENode(parent_analysis), loop_(loop) {}
246 inline void AddCoefficient(SENode* child) {
248 SENode::AddChild(child);
251 inline void AddOffset(SENode* child) {
253 SENode::AddChild(child);
256 inline const SENode* GetCoefficient() const { return coefficient_; }
257 inline SENode* GetCoefficient() { return coefficient_; }
259 inline const SENode* GetOffset() const { return offset_; }
260 inline SENode* GetOffset() { return offset_; }
269 SENode* coefficient_;
270 SENode* offset_;
275 class SEAddNode : public SENode {
278 : SENode(parent_analysis) {}
287 class SEMultiplyNode : public SENode {
290 : SENode(parent_analysis) {}
299 class SENegative : public SENode {
302 : SENode(parent_analysis) {}
312 class SEValueUnknown : public SENode {
318 : SENode(parent_analysis), result_id_(result_id) {}
332 class SECantCompute : public SENode {
335 : SENode(parent_analysis) {}