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 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 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()

constexpr 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: