Lines Matching defs:Scop
195 /// For PHI nodes in the Scop's exit block a special memory object kind is
233 const DataLayout &DL, Scop *S, const char *BaseName = nullptr);
427 Scop &S;
432 friend class Scop;
1133 /// Statement of the Scop
1135 /// A Scop statement represents an instruction in the Scop.
1146 ScopStmt(Scop &parent, BasicBlock &bb, StringRef Name, Loop *SurroundingLoop,
1157 ScopStmt(Scop &parent, Region &R, StringRef Name, Loop *SurroundingLoop,
1167 ScopStmt(Scop &parent, isl::map SourceRel, isl::map TargetRel,
1178 /// The Scop containing this ScopStmt.
1179 Scop &Parent;
1528 Scop *getParent() { return &Parent; }
1529 const Scop *getParent() const { return &Parent; }
1595 /// This allows to add MemoryAccesses after the initial creation of the Scop
1615 /// A Scop is the polyhedral representation of a control flow region detected
1616 /// by the Scop detection. It is generated by translating the LLVM-IR and
1619 /// A Scop consists of a set of:
1621 /// * A set of statements executed in the Scop.
1630 class Scop final {
1671 // This owns all the MemoryAccess objects of the Scop created in this pass.
1691 /// The statements in this Scop.
1694 /// Parameters of this Scop
1742 /// @see Scop::ScopArrayInfoMap
1769 /// In contrast to Scop::AssumedContext and Scop::InvalidContext, these do not
1772 /// Scop::Context on the other side is an overapproximation and does not
1814 /// Is this Scop marked as not to be transformed by an optimization heuristic?
1849 /// A number that uniquely represents a Scop within its function
1869 /// Scop constructor; invoked from ScopBuilder::buildScop.
1870 Scop(Region &R, ScalarEvolution &SE, LoopInfo &LI, DominatorTree &DT,
1882 /// Build the Context of the Scop.
1934 /// @name Helper functions for printing the Scop.
1944 Scop(const Scop &) = delete;
1945 Scop &operator=(const Scop &) = delete;
1946 ~Scop();
1954 /// Get the count of copy statements added to this Scop.
1956 /// @return The count of copy statements added to this Scop.
1970 /// Add the access function to all MemoryAccess objects of the Scop
2012 /// Return the LoopInfo used for this Scop.
2015 /// Get the count of parameters used in this Scop.
2017 /// @return The count of parameters used in this Scop.
2020 /// Return whether given SCEV is used as the parameter in this Scop.
2038 /// Scop.
2146 /// Return the ID of the Scop
2149 /// Get the name of the entry and exit blocks of this Scop.
2151 /// These along with the function name can uniquely identify a Scop.
2157 /// Get the name of this Scop.
2160 /// Get the constraint on parameter of this Scop.
2162 /// @return The constraint on parameter of this Scop.
2193 /// Get the assumed context for this Scop.
2195 /// @return The assumed context of this Scop.
2270 /// Get the invalid context for this Scop.
2272 /// @return The invalid context of this Scop.
2328 /// it is not represented by any statement in this Scop.
2337 /// does not belong to any statement in this Scop.
2347 /// These iterators iterate over all statements of this Scop.
2500 /// This function is like @see Scop::getPwAff() but strips away the invalid
2554 /// the Scop does not contain extension nodes, and nullptr, otherwise.
2579 /// Get the depth of a loop relative to the outermost loop in the Scop.
2666 /// Is this Scop marked as not to be transformed by an optimization heuristic?
2670 /// Mark this Scop to not apply an optimization heuristic.
2674 /// Print Scop scop to raw_ostream OS.
2675 raw_ostream &operator<<(raw_ostream &OS, const Scop &scop);
2680 /// The Scop pointer which is used to construct a Scop.
2681 std::unique_ptr<Scop> S;
2689 /// Build Scop object, the Polly IR of static control
2695 Scop *getScop() { return S.get(); }
2696 const Scop *getScop() const { return S.get(); }
2712 using RegionToScopMapTy = MapVector<Region *, std::unique_ptr<Scop>>;
2719 /// A map of Region to its Scop object containing
2736 /// Get the Scop object for the given Region.
2742 Scop *getScop(Region *R) const {
2749 /// Recompute the Scop-Information for a function.