Update comments to address Sebastian's review

llvm-svn: 193741
This commit is contained in:
Tobias Grosser 2013-10-31 11:50:52 +00:00
parent 703da2ea98
commit d764fcbd5a
2 changed files with 15 additions and 4 deletions

View File

@ -560,7 +560,7 @@ public:
__isl_give isl_set *getContext() const; __isl_give isl_set *getContext() const;
__isl_give isl_space *getParamSpace() const; __isl_give isl_space *getParamSpace() const;
/// @brief Get the assumped context for this Scop. /// @brief Get the assumed context for this Scop.
/// ///
/// @return The assumed context of this Scop. /// @return The assumed context of this Scop.
__isl_give isl_set *getAssumedContext() const; __isl_give isl_set *getAssumedContext() const;

View File

@ -60,6 +60,8 @@ public:
void pprint(llvm::raw_ostream &OS); void pprint(llvm::raw_ostream &OS);
__isl_give isl_ast_node *getAst(); __isl_give isl_ast_node *getAst();
/// @brief Get the run-time conditions for the Scop.
__isl_give isl_ast_expr *getRunCondition(); __isl_give isl_ast_expr *getRunCondition();
private: private:
@ -68,7 +70,7 @@ private:
isl_ast_expr *RunCondition; isl_ast_expr *RunCondition;
__isl_give isl_union_map *getSchedule(); __isl_give isl_union_map *getSchedule();
void buildAssumedContext(__isl_keep isl_ast_build *Context); void buildRunCondition(__isl_keep isl_ast_build *Context);
}; };
} // End namespace polly. } // End namespace polly.
@ -315,7 +317,16 @@ static __isl_give isl_ast_node *AtEachDomain(__isl_take isl_ast_node *Node,
return isl_ast_node_set_annotation(Node, Id); return isl_ast_node_set_annotation(Node, Id);
} }
void IslAst::buildAssumedContext(__isl_keep isl_ast_build *Context) { void IslAst::buildRunCondition(__isl_keep isl_ast_build *Context) {
// The conditions that need to be checked at run-time for this scop are
// available as an isl_set in the AssumedContext. We generate code for this
// check as follows. First, we generate an isl_pw_aff that is 1, if a certain
// combination of parameter values fulfills the conditions in the assumed
// context, and that is 0 otherwise. We then translate this isl_pw_aff into
// an isl_ast_expr. At run-time this expression can be evaluated and the
// optimized scop can be executed conditionally according to the result of the
// run-time check.
isl_aff *Zero = isl_aff *Zero =
isl_aff_zero_on_domain(isl_local_space_from_space(S->getParamSpace())); isl_aff_zero_on_domain(isl_local_space_from_space(S->getParamSpace()));
isl_aff *One = isl_aff *One =
@ -368,7 +379,7 @@ IslAst::IslAst(Scop *Scop, Dependences &D) : S(Scop) {
&BuildInfo); &BuildInfo);
} }
buildAssumedContext(Context); buildRunCondition(Context);
Root = isl_ast_build_ast_from_schedule(Context, Schedule); Root = isl_ast_build_ast_from_schedule(Context, Schedule);