Polly 20.0.0git
|
#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) | |
IslAst & | getIslAst () |
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 | |
static IslAstUserPayload * | getNodePayload (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 MemoryAccessSet * | getBrokenReductions (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 | |
Scop & | S |
IslAst | Ast |
using polly::IslAstInfo::MemoryAccessSet = SmallPtrSet<MemoryAccess *, 4> |
|
inline |
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().
|
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().
|
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().
|
inline |
Return the isl AST computed by this IslAstInfo.
Definition at line 112 of file IslAst.h.
References Ast.
Referenced by generateCode().
|
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().
|
static |
Definition at line 565 of file IslAst.cpp.
References isl::ast_node::get_annotation(), isl::id::get_user(), and isl::id::is_null().
Referenced by getBrokenReductions(), getBuild(), getMinimalDependenceDistance(), getSchedule(), isInnermost(), isInnermostParallel(), isOutermostParallel(), and isReductionParallel().
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
static |
Is this loop a parallel loop?
Definition at line 578 of file IslAst.cpp.
References isInnermostParallel(), and isOutermostParallel().
Referenced by polly::IslNodeBuilder::createFor().
|
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().
void IslAstInfo::print | ( | raw_ostream & | O | ) |
Definition at line 719 of file IslAst.cpp.
References Ast, cbPrintFor(), cbPrintUser(), Function, isl::ast_expr::get(), isl::ast_node::get(), polly::IslAst::getAst(), polly::IslAst::getRunCondition(), isl::ast_node::is_null(), isl_ast_node_print(), isl_ast_print_options_alloc(), isl_ast_print_options_set_print_for(), isl_ast_print_options_set_print_user(), ISL_FORMAT_C, isl_printer_flush(), isl_printer_free(), isl_printer_get_str(), isl_printer_indent(), isl_printer_print_ast_expr(), isl_printer_set_output_format(), isl_printer_to_str(), POLLY_DEBUG, and PrintAccesses().
Referenced by verifyGeneratedFunction().
|
private |
Definition at line 106 of file IslAst.h.
Referenced by getAst(), getIslAst(), getRunCondition(), and print().