Lines Matching refs:pft

67       : pgm{std::make_unique<lower::pft::Program>()}, semanticsContext{  in PFTBuilder()
69 lower::pft::ParentVariant parent{*pgm.get()};
74 std::unique_ptr<lower::pft::Program> result() { return std::move(pgm); } in result()
78 if constexpr (lower::pft::isFunctionLike<A>) { in Pre()
80 } else if constexpr (lower::pft::isConstruct<A> || in Pre()
81 lower::pft::isDirective<A>) { in Pre()
89 if constexpr (lower::pft::isConstructStmt<T> || in Pre()
90 lower::pft::isOtherStmt<T>) { in Pre()
91 addEvaluation(lower::pft::Evaluation{stmt.unwrapped, in Pre()
106 if constexpr (lower::pft::isFunctionLike<A>) { in Post()
108 } else if constexpr (lower::pft::isConstruct<A> || in Post()
109 lower::pft::isDirective<A>) { in Post()
123 addUnit(lower::pft::BlockDataUnit{node, parentVariantStack.back()}); in Pre()
132 return lower::pft::Evaluation{ in Pre()
141 return lower::pft::Evaluation{x, parentVariantStack.back(), in Pre()
153 addEvaluation(lower::pft::Evaluation{stmt.statement, in Pre()
168 addUnit(lower::pft::ModuleLikeUnit{func, parentVariantStack.back()}); in enterModule()
184 lower::pft::Evaluation{endTarget, parentVariantStack.back(), {}, {}}); in endFunctionBody()
194 auto &unit = addFunction(lower::pft::FunctionLikeUnit{ in enterFunction()
218 lower::pft::Evaluation{construct, parentVariantStack.back()}); in enterConstructOrDirective()
219 eval.evaluationList.reset(new lower::pft::EvaluationList); in enterConstructOrDirective()
236 [&](lower::pft::FunctionLikeUnit &p) { in resetFunctionState()
241 [&](lower::pft::ModuleLikeUnit &p) { in resetFunctionState()
266 lower::pft::Evaluation
273 return lower::pft::Evaluation{removeIndirection(x), in makeEvaluationAction()
282 lower::pft::Evaluation &addEvaluation(lower::pft::Evaluation &&eval) { in addEvaluation()
289 lower::pft::Evaluation *p = &evaluationListStack.back()->back(); in addEvaluation()
306 void pushEvaluationList(lower::pft::EvaluationList *eval) { in pushEvaluationList()
320 void analyzeIoBranches(lower::pft::Evaluation &eval, const A &stmt) { in analyzeIoBranches()
360 void setConstructExit(lower::pft::Evaluation &eval) { in setConstructExit()
365 void markBranchTarget(lower::pft::Evaluation &sourceEvaluation, in markBranchTarget()
366 lower::pft::Evaluation &targetEvaluation) { in markBranchTarget()
389 void markBranchTarget(lower::pft::Evaluation &sourceEvaluation, in markBranchTarget()
392 lower::pft::Evaluation *targetEvaluation{ in markBranchTarget()
399 void markSuccessorAsNewBlock(lower::pft::Evaluation &eval) { in markSuccessorAsNewBlock()
444 lower::pft::Evaluation *parentConstruct) { in insertConstructName()
454 void analyzeBranches(lower::pft::Evaluation *parentConstruct, in analyzeBranches()
455 std::list<lower::pft::Evaluation> &evaluationList) { in analyzeBranches()
456 lower::pft::Evaluation *lastConstructStmtEvaluation{nullptr}; in analyzeBranches()
457 lower::pft::Evaluation *lastIfStmtEvaluation{nullptr}; in analyzeBranches()
474 lower::pft::Evaluation *construct{name.empty() in analyzeBranches()
482 lower::pft::Evaluation *construct{name.empty() in analyzeBranches()
520 lower::pft::Evaluation *target{ in analyzeBranches()
528 lower::pft::LabelSet labelSet{}; in analyzeBranches()
590 lower::pft::Evaluation &doEval{evaluationList.front()}; in analyzeBranches()
744 std::unique_ptr<lower::pft::Program> pgm;
745 std::vector<lower::pft::ParentVariant> parentVariantStack;
750 std::list<lower::pft::FunctionLikeUnit> *functionList{nullptr};
751 std::vector<lower::pft::Evaluation *> constructAndDirectiveStack{};
752 std::vector<lower::pft::Evaluation *> doConstructStack{};
754 std::vector<lower::pft::EvaluationList *> evaluationListStack{};
755 llvm::DenseMap<parser::Label, lower::pft::Evaluation *> *labelEvaluationMap{
757 lower::pft::SymbolLabelMap *assignSymbolLabelMap{nullptr};
758 std::map<std::string, lower::pft::Evaluation *> constructNameMap{};
759 lower::pft::Evaluation *lastLexicalEvaluation{nullptr};
764 void dumpPFT(llvm::raw_ostream &outputStream, lower::pft::Program &pft) { in dumpPFT() argument
765 for (auto &unit : pft.getUnits()) { in dumpPFT()
767 [&](lower::pft::BlockDataUnit &unit) { in dumpPFT()
772 [&](lower::pft::FunctionLikeUnit &func) { in dumpPFT()
775 [&](lower::pft::ModuleLikeUnit &unit) { in dumpPFT()
783 llvm::StringRef evaluationName(lower::pft::Evaluation &eval) { in evaluationName()
792 lower::pft::EvaluationList &evaluationList, in dumpEvaluationList()
796 for (lower::pft::Evaluation &eval : evaluationList) { in dumpEvaluationList()
833 lower::pft::FunctionLikeUnit &functionLikeUnit) { in dumpFunctionLikeUnit()
880 lower::pft::ModuleLikeUnit &moduleLikeUnit) { in dumpModuleLikeUnit()
899 std::size_t getNodeIndex(const lower::pft::Program &) { return 0; } in getNodeIndex()
909 static lower::pft::FunctionLikeUnit::FunctionStatement
911 lower::pft::FunctionLikeUnit::FunctionStatement result{ in getFunctionStmt()
916 static lower::pft::ModuleLikeUnit::ModuleStatement getModuleStmt(const T &mod) { in getModuleStmt()
917 lower::pft::ModuleLikeUnit::ModuleStatement result{ in getModuleStmt()
923 std::optional<lower::pft::FunctionLikeUnit::FunctionStatement> &beginStmt) { in getSymbol()
948 bool Fortran::lower::pft::Evaluation::lowerAsStructured() const { in lowerAsStructured()
952 bool Fortran::lower::pft::Evaluation::lowerAsUnstructured() const { in lowerAsUnstructured()
956 lower::pft::FunctionLikeUnit *
957 Fortran::lower::pft::Evaluation::getOwningProcedure() const { in getOwningProcedure()
959 [](lower::pft::FunctionLikeUnit &c) { return &c; }, in getOwningProcedure()
960 [&](lower::pft::Evaluation &c) { return c.getOwningProcedure(); }, in getOwningProcedure()
961 [](auto &) -> lower::pft::FunctionLikeUnit * { return nullptr; }, in getOwningProcedure()
972 std::vector<std::vector<lower::pft::Variable>> &vars) in SymbolDependenceDepth()
1057 std::vector<std::vector<lower::pft::Variable>> &vars;
1061 void Fortran::lower::pft::FunctionLikeUnit::processSymbolTable( in processSymbolTable()
1079 Fortran::lower::pft::FunctionLikeUnit::FunctionLikeUnit( in FunctionLikeUnit()
1080 const parser::MainProgram &func, const lower::pft::ParentVariant &parent, in FunctionLikeUnit()
1098 Fortran::lower::pft::FunctionLikeUnit::FunctionLikeUnit( in FunctionLikeUnit()
1100 const lower::pft::ParentVariant &parent, in FunctionLikeUnit()
1109 Fortran::lower::pft::FunctionLikeUnit::FunctionLikeUnit( in FunctionLikeUnit()
1111 const lower::pft::ParentVariant &parent, in FunctionLikeUnit()
1120 Fortran::lower::pft::FunctionLikeUnit::FunctionLikeUnit( in FunctionLikeUnit()
1122 const lower::pft::ParentVariant &parent, in FunctionLikeUnit()
1131 Fortran::lower::pft::ModuleLikeUnit::ModuleLikeUnit( in ModuleLikeUnit()
1132 const parser::Module &m, const lower::pft::ParentVariant &parent) in ModuleLikeUnit()
1136 Fortran::lower::pft::ModuleLikeUnit::ModuleLikeUnit( in ModuleLikeUnit()
1137 const parser::Submodule &m, const lower::pft::ParentVariant &parent) in ModuleLikeUnit()
1142 Fortran::lower::pft::BlockDataUnit::BlockDataUnit( in BlockDataUnit()
1143 const parser::BlockData &bd, const lower::pft::ParentVariant &parent) in BlockDataUnit()
1146 std::unique_ptr<lower::pft::Program>
1155 lower::pft::Program &pft) { in dumpPFT() argument
1156 PFTDumper{}.dumpPFT(outputStream, pft); in dumpPFT()
1159 void Fortran::lower::pft::Program::dump() { dumpPFT(llvm::errs(), *this); } in dump()