[polly] r260958 - Replace getLoopForInst by getLoopForStmt
Johannes Doerfert via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 16 04:36:14 PST 2016
Author: jdoerfert
Date: Tue Feb 16 06:36:14 2016
New Revision: 260958
URL: http://llvm.org/viewvc/llvm-project?rev=260958&view=rev
Log:
Replace getLoopForInst by getLoopForStmt
This patch was extracted from http://reviews.llvm.org/D13611.
Modified:
polly/trunk/include/polly/CodeGen/BlockGenerators.h
polly/trunk/lib/CodeGen/BlockGenerators.cpp
Modified: polly/trunk/include/polly/CodeGen/BlockGenerators.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/CodeGen/BlockGenerators.h?rev=260958&r1=260957&r2=260958&view=diff
==============================================================================
--- polly/trunk/include/polly/CodeGen/BlockGenerators.h (original)
+++ polly/trunk/include/polly/CodeGen/BlockGenerators.h Tue Feb 16 06:36:14 2016
@@ -473,11 +473,8 @@ protected:
void copyInstScalar(ScopStmt &Stmt, Instruction *Inst, ValueMapT &BBMap,
LoopToScevMapT <S);
- /// @brief Get the innermost loop that surrounds an instruction.
- ///
- /// @param Inst The instruction for which we get the loop.
- /// @return The innermost loop that surrounds the instruction.
- Loop *getLoopForInst(const Instruction *Inst);
+ /// @brief Get the innermost loop that surrounds the statement @p Stmt.
+ Loop *getLoopForStmt(const ScopStmt &Stmt) const;
/// @brief Generate the operand address
/// @param NewAccesses A map from memory access ids to new ast expressions,
Modified: polly/trunk/lib/CodeGen/BlockGenerators.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/BlockGenerators.cpp?rev=260958&r1=260957&r2=260958&view=diff
==============================================================================
--- polly/trunk/lib/CodeGen/BlockGenerators.cpp (original)
+++ polly/trunk/lib/CodeGen/BlockGenerators.cpp Tue Feb 16 06:36:14 2016
@@ -149,7 +149,7 @@ void BlockGenerator::copyInstScalar(Scop
// Replace old operands with the new ones.
for (Value *OldOperand : Inst->operands()) {
Value *NewOperand =
- getNewValue(Stmt, OldOperand, BBMap, LTS, getLoopForInst(Inst));
+ getNewValue(Stmt, OldOperand, BBMap, LTS, getLoopForStmt(Stmt));
if (!NewOperand) {
assert(!isa<StoreInst>(NewInst) &&
@@ -194,11 +194,13 @@ BlockGenerator::generateLocationAccessed
}
return getNewValue(Stmt, Inst.getPointerOperand(), BBMap, LTS,
- getLoopForInst(Inst));
+ getLoopForStmt(Stmt));
}
-Loop *BlockGenerator::getLoopForInst(const llvm::Instruction *Inst) {
- return LI.getLoopFor(Inst->getParent());
+Loop *BlockGenerator::getLoopForStmt(const ScopStmt &Stmt) const {
+ auto *StmtBB =
+ Stmt.isBlockStmt() ? Stmt.getBasicBlock() : Stmt.getRegion()->getEntry();
+ return LI.getLoopFor(StmtBB);
}
Value *BlockGenerator::generateScalarLoad(ScopStmt &Stmt, LoadInst *Load,
@@ -225,7 +227,7 @@ void BlockGenerator::generateScalarStore
Value *NewPointer =
generateLocationAccessed(Stmt, Store, BBMap, LTS, NewAccesses);
Value *ValueOperand = getNewValue(Stmt, Store->getValueOperand(), BBMap, LTS,
- getLoopForInst(Store));
+ getLoopForStmt(Stmt));
if (DebugPrinting)
RuntimeDebugBuilder::createCPUPrinter(Builder, "Store to ", NewPointer,
@@ -235,7 +237,7 @@ void BlockGenerator::generateScalarStore
}
bool BlockGenerator::canSyntheziseInStmt(ScopStmt &Stmt, Instruction *Inst) {
- Loop *L = getLoopForInst(Inst);
+ Loop *L = getLoopForStmt(Stmt);
return (Stmt.isBlockStmt() || !Stmt.getRegion()->contains(L)) &&
canSynthesize(Inst, &LI, &SE, &Stmt.getParent()->getRegion());
}
@@ -770,7 +772,7 @@ void VectorBlockGenerator::copyUnaryInst
VectorValueMapT &ScalarMaps) {
int VectorWidth = getVectorWidth();
Value *NewOperand = getVectorValue(Stmt, Inst->getOperand(0), VectorMap,
- ScalarMaps, getLoopForInst(Inst));
+ ScalarMaps, getLoopForStmt(Stmt));
assert(isa<CastInst>(Inst) && "Can not generate vector code for instruction");
@@ -782,7 +784,7 @@ void VectorBlockGenerator::copyUnaryInst
void VectorBlockGenerator::copyBinaryInst(ScopStmt &Stmt, BinaryOperator *Inst,
ValueMapT &VectorMap,
VectorValueMapT &ScalarMaps) {
- Loop *L = getLoopForInst(Inst);
+ Loop *L = getLoopForStmt(Stmt);
Value *OpZero = Inst->getOperand(0);
Value *OpOne = Inst->getOperand(1);
@@ -802,7 +804,7 @@ void VectorBlockGenerator::copyStore(
auto *Pointer = Store->getPointerOperand();
Value *Vector = getVectorValue(Stmt, Store->getValueOperand(), VectorMap,
- ScalarMaps, getLoopForInst(Store));
+ ScalarMaps, getLoopForStmt(Stmt));
// Make sure we have scalar values available to access the pointer to
// the data location.
@@ -1294,7 +1296,7 @@ void RegionGenerator::addOperandToPHI(Sc
BasicBlock *OldBlock = Builder.GetInsertBlock();
auto OldIP = Builder.GetInsertPoint();
Builder.SetInsertPoint(BBCopy->getTerminator());
- OpCopy = getNewValue(Stmt, Op, BBCopyMap, LTS, getLoopForInst(PHI));
+ OpCopy = getNewValue(Stmt, Op, BBCopyMap, LTS, getLoopForStmt(Stmt));
Builder.SetInsertPoint(OldBlock, OldIP);
} else {
More information about the llvm-commits
mailing list