From c186ac7aeab6ae2f37f365bea99a02d49074c26f Mon Sep 17 00:00:00 2001 From: Tobias Grosser Date: Tue, 11 Aug 2015 08:13:15 +0000 Subject: [PATCH] BlockGenerator: Do not store 'store' statements in BBMap A store statement has no return value and can consequently not be referenced from another statement. llvm-svn: 244576 --- polly/include/polly/CodeGen/BlockGenerators.h | 6 +++--- polly/lib/CodeGen/BlockGenerators.cpp | 17 +++++------------ 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/polly/include/polly/CodeGen/BlockGenerators.h b/polly/include/polly/CodeGen/BlockGenerators.h index 015e6cc..8c18f0c 100644 --- a/polly/include/polly/CodeGen/BlockGenerators.h +++ b/polly/include/polly/CodeGen/BlockGenerators.h @@ -406,9 +406,9 @@ protected: ValueMapT &BBMap, ValueMapT &GlobalMap, LoopToScevMapT <S); - Value *generateScalarStore(ScopStmt &Stmt, const StoreInst *store, - ValueMapT &BBMap, ValueMapT &GlobalMap, - LoopToScevMapT <S); + void generateScalarStore(ScopStmt &Stmt, const StoreInst *store, + ValueMapT &BBMap, ValueMapT &GlobalMap, + LoopToScevMapT <S); /// @brief Copy a single PHI instruction. /// diff --git a/polly/lib/CodeGen/BlockGenerators.cpp b/polly/lib/CodeGen/BlockGenerators.cpp index 234d158..8e8e40c 100644 --- a/polly/lib/CodeGen/BlockGenerators.cpp +++ b/polly/lib/CodeGen/BlockGenerators.cpp @@ -230,20 +230,16 @@ Value *BlockGenerator::generateScalarLoad(ScopStmt &Stmt, const LoadInst *Load, return ScalarLoad; } -Value *BlockGenerator::generateScalarStore(ScopStmt &Stmt, - const StoreInst *Store, - ValueMapT &BBMap, - ValueMapT &GlobalMap, - LoopToScevMapT <S) { +void BlockGenerator::generateScalarStore(ScopStmt &Stmt, const StoreInst *Store, + ValueMapT &BBMap, ValueMapT &GlobalMap, + LoopToScevMapT <S) { const Value *Pointer = Store->getPointerOperand(); Value *NewPointer = generateLocationAccessed(Stmt, Store, Pointer, BBMap, GlobalMap, LTS); Value *ValueOperand = getNewValue(Stmt, Store->getValueOperand(), BBMap, GlobalMap, LTS, getLoopForInst(Store)); - Value *NewStore = Builder.CreateAlignedStore(ValueOperand, NewPointer, - Store->getAlignment()); - return NewStore; + Builder.CreateAlignedStore(ValueOperand, NewPointer, Store->getAlignment()); } void BlockGenerator::copyInstruction(ScopStmt &Stmt, const Instruction *Inst, @@ -275,10 +271,7 @@ void BlockGenerator::copyInstruction(ScopStmt &Stmt, const Instruction *Inst, } if (const StoreInst *Store = dyn_cast(Inst)) { - Value *NewStore = generateScalarStore(Stmt, Store, BBMap, GlobalMap, LTS); - // Compute NewStore before its insertion in BBMap to make the insertion - // deterministic. - BBMap[Store] = NewStore; + generateScalarStore(Stmt, Store, BBMap, GlobalMap, LTS); return; } -- 2.7.4