Polly 20.0.0git
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
polly::IslAstInfo Class Reference

#include <IslAst.h>

Classes

struct  IslAstUserPayload
 Payload information used to annotate an AST node. More...
 

Public Types

using MemoryAccessSet = SmallPtrSet< MemoryAccess *, 4 >
 

Public Member Functions

 IslAstInfo (Scop &S, const Dependences &D)
 
IslAstgetIslAst ()
 Return the isl AST computed by this IslAstInfo.
 
isl::ast_node getAst ()
 Return a copy of the AST root node.
 
isl::ast_expr getRunCondition ()
 Get the run condition.
 
void print (raw_ostream &O)
 

Static Public Member Functions

Extract information attached to an isl ast (for) node.

{ Get the complete payload attached to Node.

static IslAstUserPayloadgetNodePayload (const isl::ast_node &Node)
 
static bool isInnermost (const isl::ast_node &Node)
 Is this loop an innermost loop?
 
static bool isParallel (const isl::ast_node &Node)
 Is this loop a parallel loop?
 
static bool isOutermostParallel (const isl::ast_node &Node)
 Is this loop an outermost parallel loop?
 
static bool isInnermostParallel (const isl::ast_node &Node)
 Is this loop an innermost parallel loop?
 
static bool isReductionParallel (const isl::ast_node &Node)
 Is this loop a reduction parallel loop?
 
static bool isExecutedInParallel (const isl::ast_node &Node)
 Will the loop be run as thread parallel?
 
static isl::union_map getSchedule (const isl::ast_node &Node)
 Get the nodes schedule or a nullptr if not available.
 
static isl::pw_aff getMinimalDependenceDistance (const isl::ast_node &Node)
 Get minimal dependence distance or nullptr if not available.
 
static MemoryAccessSetgetBrokenReductions (const isl::ast_node &Node)
 Get the nodes broken reductions or a nullptr if not available.
 
static isl::ast_build getBuild (const isl::ast_node &Node)
 Get the nodes build context or a nullptr if not available.
 

Private Attributes

ScopS
 
IslAst Ast
 

Detailed Description

Definition at line 69 of file IslAst.h.

Member Typedef Documentation

◆ MemoryAccessSet

Definition at line 71 of file IslAst.h.

Constructor & Destructor Documentation

◆ IslAstInfo()

polly::IslAstInfo::IslAstInfo ( Scop S,
const Dependences D 
)
inline

Definition at line 109 of file IslAst.h.

Member Function Documentation

◆ getAst()

isl::ast_node IslAstInfo::getAst ( )

Return a copy of the AST root node.

Definition at line 562 of file IslAst.cpp.

References Ast, and polly::IslAst::getAst().

◆ getBrokenReductions()

IslAstInfo::MemoryAccessSet * IslAstInfo::getBrokenReductions ( const isl::ast_node Node)
static

Get the nodes broken reductions or a nullptr if not available.

Definition at line 629 of file IslAst.cpp.

References polly::IslAstInfo::IslAstUserPayload::BrokenReductions, and getNodePayload().

Referenced by getBrokenReductionsStr().

◆ getBuild()

isl::ast_build IslAstInfo::getBuild ( const isl::ast_node Node)
static

Get the nodes build context or a nullptr if not available.

Definition at line 634 of file IslAst.cpp.

References polly::IslAstInfo::IslAstUserPayload::Build, and getNodePayload().

Referenced by cbPrintUser(), and polly::IslNodeBuilder::createNewAccesses().

◆ getIslAst()

IslAst & polly::IslAstInfo::getIslAst ( )
inline

Return the isl AST computed by this IslAstInfo.

Definition at line 112 of file IslAst.h.

References Ast.

Referenced by generateCode().

◆ getMinimalDependenceDistance()

isl::pw_aff IslAstInfo::getMinimalDependenceDistance ( const isl::ast_node Node)
static

Get minimal dependence distance or nullptr if not available.

Definition at line 623 of file IslAst.cpp.

References getNodePayload(), and polly::IslAstInfo::IslAstUserPayload::MinimalDependenceDistance.

Referenced by cbPrintFor().

◆ getNodePayload()

IslAstUserPayload * IslAstInfo::getNodePayload ( const isl::ast_node Node)
static

◆ getRunCondition()

isl::ast_expr IslAstInfo::getRunCondition ( )

Get the run condition.

Only if the run condition evaluates at run-time to a non-zero value, the assumptions that have been taken hold. If the run condition evaluates to zero/false some assumptions do not hold and the original code needs to be executed.

Definition at line 563 of file IslAst.cpp.

References Ast, and polly::IslAst::getRunCondition().

Referenced by generateCode().

◆ getSchedule()

isl::union_map IslAstInfo::getSchedule ( const isl::ast_node Node)
static

Get the nodes schedule or a nullptr if not available.

Definition at line 617 of file IslAst.cpp.

References polly::IslAstInfo::IslAstUserPayload::Build, isl::ast_build::get_schedule(), and getNodePayload().

Referenced by polly::IslNodeBuilder::getScheduleForAstNode().

◆ isExecutedInParallel()

bool IslAstInfo::isExecutedInParallel ( const isl::ast_node Node)
static

Will the loop be run as thread parallel?

Definition at line 598 of file IslAst.cpp.

References isInnermost(), isOutermostParallel(), isReductionParallel(), PollyParallel(), and PollyParallelForce().

Referenced by cbPrintFor(), and polly::IslNodeBuilder::createFor().

◆ isInnermost()

bool IslAstInfo::isInnermost ( const isl::ast_node Node)
static

Is this loop an innermost loop?

Definition at line 573 of file IslAst.cpp.

References getNodePayload(), and polly::IslAstInfo::IslAstUserPayload::IsInnermost.

Referenced by isExecutedInParallel().

◆ isInnermostParallel()

bool IslAstInfo::isInnermostParallel ( const isl::ast_node Node)
static

Is this loop an innermost parallel loop?

Definition at line 583 of file IslAst.cpp.

References getNodePayload(), and polly::IslAstInfo::IslAstUserPayload::IsInnermostParallel.

Referenced by cbPrintFor(), and isParallel().

◆ isOutermostParallel()

bool IslAstInfo::isOutermostParallel ( const isl::ast_node Node)
static

Is this loop an outermost parallel loop?

Definition at line 588 of file IslAst.cpp.

References getNodePayload(), and polly::IslAstInfo::IslAstUserPayload::IsOutermostParallel.

Referenced by cbPrintFor(), isExecutedInParallel(), and isParallel().

◆ isParallel()

bool IslAstInfo::isParallel ( const isl::ast_node Node)
static

Is this loop a parallel loop?

Definition at line 578 of file IslAst.cpp.

References isInnermostParallel(), and isOutermostParallel().

Referenced by polly::IslNodeBuilder::createFor().

◆ isReductionParallel()

bool IslAstInfo::isReductionParallel ( const isl::ast_node Node)
static

Is this loop a reduction parallel loop?

Definition at line 593 of file IslAst.cpp.

References getNodePayload(), and polly::IslAstInfo::IslAstUserPayload::IsReductionParallel.

Referenced by polly::IslNodeBuilder::createFor(), and isExecutedInParallel().

◆ print()

void IslAstInfo::print ( raw_ostream &  O)

Member Data Documentation

◆ Ast

IslAst polly::IslAstInfo::Ast
private

Definition at line 106 of file IslAst.h.

Referenced by getAst(), getIslAst(), getRunCondition(), and print().

◆ S

Scop& polly::IslAstInfo::S
private

Definition at line 105 of file IslAst.h.


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