IslNodeBuilder: expose addReferencesFromStmt [NFC]

This will be used by Polly GPGPU to determine the values that need to be
passed to GPU kernels.

llvm-svn: 276269
This commit is contained in:
Tobias Grosser 2016-07-21 13:15:55 +00:00
parent 04b909fcca
commit 86083da0ec
2 changed files with 13 additions and 11 deletions

View File

@ -27,6 +27,18 @@ struct isl_ast_node;
struct isl_ast_build;
struct isl_union_map;
struct SubtreeReferences {
LoopInfo &LI;
ScalarEvolution &SE;
Scop &S;
ValueMapT &GlobalMap;
SetVector<Value *> &Values;
SetVector<const SCEV *> &SCEVs;
BlockGenerator &BlockGen;
};
isl_stat addReferencesFromStmt(const ScopStmt *Stmt, void *UserPtr);
class IslNodeBuilder {
public:
IslNodeBuilder(PollyIRBuilder &Builder, ScopAnnotator &Annotator, Pass *P,

View File

@ -177,16 +177,6 @@ int IslNodeBuilder::getNumberOfIterations(__isl_keep isl_ast_node *For) {
return NumberIterations + 1;
}
struct SubtreeReferences {
LoopInfo &LI;
ScalarEvolution &SE;
Scop &S;
ValueMapT &GlobalMap;
SetVector<Value *> &Values;
SetVector<const SCEV *> &SCEVs;
BlockGenerator &BlockGen;
};
/// @brief Extract the values and SCEVs needed to generate code for a block.
static int findReferencesInBlock(struct SubtreeReferences &References,
const ScopStmt *Stmt, const BasicBlock *BB) {
@ -213,7 +203,7 @@ static int findReferencesInBlock(struct SubtreeReferences &References,
/// @param Stmt The statement for which to extract the information.
/// @param UserPtr A void pointer that can be casted to a SubtreeReferences
/// structure.
static isl_stat addReferencesFromStmt(const ScopStmt *Stmt, void *UserPtr) {
isl_stat addReferencesFromStmt(const ScopStmt *Stmt, void *UserPtr) {
auto &References = *static_cast<struct SubtreeReferences *>(UserPtr);
if (Stmt->isBlockStmt())