FLANG

Public Member Functions | Public Attributes | List of all members
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 ParentVariant &parentVariant, const parser::CharBlock &position, const std::optional< parser::Label > &label)
| General ctor.
template<typename A >
| Evaluation (const A &a, const ParentVariant &parentVariant)
| Construct ctor.
constexpr bool | isActionStmt () const
| Evaluation classification predicates.
constexpr bool | isOtherStmt () const
constexpr bool | isConstructStmt () const
constexpr bool | isConstruct () const
constexpr bool | isDirective () const
constexpr bool | isNopConstructStmt () const
constexpr bool | isIntermediateConstructStmt () const
Evaluation & | nonNopSuccessor () const
bool | hasNestedEvaluations () const
| Return true if this Evaluation has at least one nested evaluation.
EvaluationList & | getNestedEvaluations ()
| Return nested evaluation list.
Evaluation & | getFirstNestedEvaluation ()
Evaluation & | getLastNestedEvaluation ()
FunctionLikeUnit * | getOwningProcedure () const
| Return the FunctionLikeUnit containing this evaluation (or nullptr).
bool | lowerAsStructured () const
bool | lowerAsUnstructured () const

## Public Attributes
ParentVariant | parentVariant
parser::CharBlock | position {}
std::optional< parser::Label > | label {}
std::unique_ptr< EvaluationList > | evaluationList
Evaluation * | parentConstruct {nullptr}
Evaluation * | lexicalSuccessor {nullptr}
Evaluation * | controlSuccessor {nullptr}
Evaluation * | constructExit {nullptr}
bool | isNewBlock {false}
bool | isUnstructured {false}
bool | skip {false}
mlir::Block * | block {nullptr}
llvm::SmallVector< mlir::Block *, 1 > | localBlocks {}
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()

constexpr bool Fortran::lower::pft::Evaluation::isIntermediateConstructStmt | ( |  | ) | const
| inline constexpr

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:

- include/flang/Lower/PFTBuilder.h
- lib/Lower/PFTBuilder.cpp