Changeset View
Changeset View
Standalone View
Standalone View
include/polly/CodeGen/IslAst.h
Show First 20 Lines • Show All 133 Lines • ▼ Show 20 Lines | public: | ||||
getMinimalDependenceDistance(__isl_keep isl_ast_node *Node); | getMinimalDependenceDistance(__isl_keep isl_ast_node *Node); | ||||
/// @brief Get the nodes broken reductions or a nullptr if not available. | /// @brief Get the nodes broken reductions or a nullptr if not available. | ||||
static MemoryAccessSet *getBrokenReductions(__isl_keep isl_ast_node *Node); | static MemoryAccessSet *getBrokenReductions(__isl_keep isl_ast_node *Node); | ||||
/// @brief Get the nodes build context or a nullptr if not available. | /// @brief Get the nodes build context or a nullptr if not available. | ||||
static __isl_give isl_ast_build *getBuild(__isl_keep isl_ast_node *Node); | static __isl_give isl_ast_build *getBuild(__isl_keep isl_ast_node *Node); | ||||
/// @brief Get the number of iterations or a nullptr if not available. | |||||
static __isl_give isl_pw_aff * | |||||
getNumberOfIterations(__isl_keep isl_ast_node *For); | |||||
jdoerfert: We might consider to move to this interface and do some actual computation on the parametric… | |||||
/// @brief Get the number of iterations as int or -1 if not available. | |||||
static int getNumberOfIterationsAsInt(__isl_keep isl_ast_node *For); | |||||
///} | ///} | ||||
virtual void getAnalysisUsage(AnalysisUsage &AU) const; | virtual void getAnalysisUsage(AnalysisUsage &AU) const; | ||||
virtual void releaseMemory(); | virtual void releaseMemory(); | ||||
}; | }; | ||||
} | } | ||||
namespace llvm { | namespace llvm { | ||||
class PassRegistry; | class PassRegistry; | ||||
void initializeIslAstInfoPass(llvm::PassRegistry &); | void initializeIslAstInfoPass(llvm::PassRegistry &); | ||||
} | } | ||||
#endif /* POLLY_ISL_AST_H */ | #endif /* POLLY_ISL_AST_H */ |
We might consider to move to this interface and do some actual computation on the parametric loop trip counts instead of limiting ourselfs to integer loop trip counts... often the LLVM vectorizer does not vectorize loops even if they are annotated parallel and have a few simple load-binop-store chains (e.g., bicg when it's parallelized in the outer most dimension and therefore doesn't have a reduction in the innermost loop any more [due to privatization to be exact]).