Lines Matching refs:Constraint
168 class Constraint {
170 explicit Constraint(const Loop* loop) : loop_(loop) {}
175 virtual ~Constraint() {}
177 // Get the loop this constraint belongs to.
180 bool operator==(const Constraint& other) const;
182 bool operator!=(const Constraint& other) const;
198 class DependenceLine : public Constraint {
201 : Constraint(loop), a_(a), b_(b), c_(c) {}
218 class DependenceDistance : public Constraint {
221 : Constraint(loop), distance_(distance) {}
234 class DependencePoint : public Constraint {
237 : Constraint(loop), source_(source), destination_(destination) {}
252 class DependenceNone : public Constraint {
254 DependenceNone() : Constraint(nullptr) {}
261 class DependenceEmpty : public Constraint {
263 DependenceEmpty() : Constraint(nullptr) {}
378 // Creates a new constraint of type |T| and returns the pointer to it.
380 Constraint* make_constraint(Args&&... args) {
382 std::unique_ptr<Constraint>(new T(std::forward<Args>(args)...)));
424 // Constraint propagation as described in Figure 5 of 'Practical Dependence
428 const std::vector<Constraint*>& constraints);
430 // Constraint intersection as described in Figure 4 of 'Practical Dependence
432 Constraint* IntersectConstraints(Constraint* constraint_0,
433 Constraint* constraint_1,
462 std::list<std::unique_ptr<Constraint>> constraints_;