Lines Matching defs:IncrementLoopInfo
67 struct IncrementLoopInfo { struct
69 explicit IncrementLoopInfo(Fortran::semantics::Symbol &sym, const T &lower, in IncrementLoopInfo() function
77 IncrementLoopInfo &operator=(IncrementLoopInfo &&x) { return x; } in operator =()
79 bool isStructured() const { return !headerBlock; } in isStructured()
81 mlir::Type getLoopVariableType() const { in getLoopVariableType()
87 const Fortran::semantics::Symbol &loopVariableSym;
88 const Fortran::lower::SomeExpr *lowerExpr;
89 const Fortran::lower::SomeExpr *upperExpr;
90 const Fortran::lower::SomeExpr *stepExpr;
91 const Fortran::lower::SomeExpr *maskExpr = nullptr;
92 bool isUnordered; // do concurrent, forall
93 llvm::SmallVector<const Fortran::semantics::Symbol *> localInitSymList;
94 llvm::SmallVector<const Fortran::semantics::Symbol *> sharedSymList;
95 mlir::Value loopVariable = nullptr;
96 mlir::Value stepValue = nullptr; // possible uses in multiple blocks
99 fir::DoLoopOp doLoop = nullptr;
102 bool hasRealControl = false;
103 mlir::Value tripVariable = nullptr;
104 mlir::Block *headerBlock = nullptr; // loop entry and test block
105 mlir::Block *maskBlock = nullptr; // concurrent loop mask block
106 mlir::Block *bodyBlock = nullptr; // first loop body block
107 mlir::Block *exitBlock = nullptr; // loop exit target block