summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--polly/include/polly/CodeGen/BlockGenerators.h2
-rw-r--r--polly/lib/CodeGen/BlockGenerators.cpp15
2 files changed, 10 insertions, 7 deletions
diff --git a/polly/include/polly/CodeGen/BlockGenerators.h b/polly/include/polly/CodeGen/BlockGenerators.h
index 62a6b62c1a7..b2ab376033e 100644
--- a/polly/include/polly/CodeGen/BlockGenerators.h
+++ b/polly/include/polly/CodeGen/BlockGenerators.h
@@ -348,7 +348,7 @@ protected:
/// Handle users of @p Array outside the SCoP.
///
/// @param S The current SCoP.
- /// @param Inst The ScopArray to handle.
+ /// @param Inst The ScopArrayInfo to handle.
void handleOutsideUsers(const Scop &S, ScopArrayInfo *Array);
/// Find scalar statements that have outside users.
diff --git a/polly/lib/CodeGen/BlockGenerators.cpp b/polly/lib/CodeGen/BlockGenerators.cpp
index 1bd8df43f1a..7109d6a0650 100644
--- a/polly/lib/CodeGen/BlockGenerators.cpp
+++ b/polly/lib/CodeGen/BlockGenerators.cpp
@@ -380,12 +380,15 @@ Value *BlockGenerator::getOrCreateAlloca(const ScopArrayInfo *Array) {
// to the parallel subfunction and each request for a scalar alloca slot
// must be forwared to the temporary in-subfunction slot. This mapping is
// removed when the subfunction has been generated and again normal host
- // code is generated. As GlobalMap may be changed multiple times (for
- // each parallel loop), is commonly only known after the initial alloca
- // has been generated, and the original alloca value must be restored at
- // the end, it is not possible to perform the GlobalMap lookup right after
- // creating the alloca below, but instead we need to check GlobalMap at
- // call to getOrCreateAlloca.
+ // code is generated. Due to the following reasons it is not possible to
+ // perform the GlobalMap lookup right after creating the alloca below, but
+ // instead we need to check GlobalMap at each call to getOrCreateAlloca:
+ //
+ // 1) GlobalMap may be changed multiple times (for each parallel loop),
+ // 2) The temporary mapping is commonly only known after the initial
+ // alloca has already been generated, and
+ // 3) The original alloca value must be restored after leaving the
+ // sub-function.
if (Value *NewAddr = GlobalMap.lookup(&*Addr))
return NewAddr;
return Addr;
OpenPOWER on IntegriCloud