FLANG
Fortran::lower::pft::Evaluation Struct Reference

#include <flang/Lower/PFTBuilder.h>

Inheritance diagram for Fortran::lower::pft::Evaluation:

Public Member Functions

template<typename A>
 Evaluation (const A &a, const PftNode &parent, const parser::CharBlock &position, const std::optional< parser::Label > &label)
 General ctor.
template<typename A>
 Evaluation (const A &a, const PftNode &parent)
 Construct and Directive ctor.
constexpr bool isActionStmt () const
 Evaluation classification predicates.
constexpr bool isOtherStmt () const
constexpr bool isConstructStmt () const
constexpr bool isEndStmt () const
constexpr bool isConstruct () const
constexpr bool isDirective () const
constexpr bool isNopConstructStmt () const
constexpr bool isExecutableDirective () const
constexpr bool isOpenMPDirective () const
constexpr bool isIntermediateConstructStmt () const
LLVM_DUMP_METHOD void dump () const
EvaluationnonNopSuccessor () const
bool hasNestedEvaluations () const
 Return true if this Evaluation has at least one nested evaluation.
EvaluationList & getNestedEvaluations ()
 Return nested evaluation list.
EvaluationgetFirstNestedEvaluation ()
EvaluationgetLastNestedEvaluation ()
FunctionLikeUnitgetOwningProcedure () const
 Return the FunctionLikeUnit containing this evaluation (or nullptr).
bool lowerAsStructured () const
bool lowerAsUnstructured () const
bool forceAsUnstructured () const

Public Attributes

PftNode parent
parser::CharBlock position {}
std::optional< parser::Label > label {}
std::unique_ptr< EvaluationList > evaluationList
llvm::SmallVector< const parser::CompilerDirective *, 1 > dirs
EvaluationparentConstruct {nullptr}
EvaluationlexicalSuccessor {nullptr}
EvaluationcontrolSuccessor {nullptr}
EvaluationconstructExit {nullptr}
bool isNewBlock {false}
bool isUnstructured {false}
bool negateCondition {false}
bool activeConstruct {false}
mlir::Block * block {nullptr}
int printIndex {0}

Detailed Description

Function-like units contain lists of evaluations. These can be simple statements or constructs, where a construct contains its own evaluations.

Member Function Documentation

◆ isIntermediateConstructStmt()

bool Fortran::lower::pft::Evaluation::isIntermediateConstructStmt ( ) const
inlineconstexpr

Return the predicate: "This is a non-initial, non-terminal construct statement." For an IfConstruct, this is ElseIfStmt and ElseStmt.

◆ nonNopSuccessor()

Evaluation & Fortran::lower::pft::Evaluation::nonNopSuccessor ( ) const
inline

Return the first non-nop successor of an evaluation, possibly exiting from one or more enclosing constructs.


The documentation for this struct was generated from the following files: