mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-31 14:15:12 +00:00
createScalarInitialization: Always store PHI-node value
The current code really tries hard to use getNewScalarValue(), which checks if not the original value, but a possible copy or demoted value needs to be stored. In this calling context it seems, that we _always_ use the ScalarValue that comes from the incoming PHI node, but never any other value. As also no test cases fail, it seems right to just drop this call to getNewScalarValue and remove the parameters that are not needed any more. Johannes suggested that code like this might be needed for parallel code generation with offloading, but it was still unclear if/what exactly would be needed. As the parallel code generation does currently not support scalars at all, we will remove this code for now and add relevant code back when complitng the support of scalars in the parallel code generation. Reviewers: jdoerfert Subscribers: pollydev, llvm-commits Differential Revision: http://reviews.llvm.org/D12470 llvm-svn: 246389
This commit is contained in:
parent
e83a396b1d
commit
655a4570cd
@ -147,9 +147,9 @@ public:
|
||||
/// This will initialize and finalize the scalar variables we demoted during
|
||||
/// the code generation.
|
||||
///
|
||||
/// @see createScalarInitialization(Region &, ValueMapT &)
|
||||
/// @see createScalarInitialization(Region &)
|
||||
/// @see createScalarFinalization(Region &)
|
||||
void finalizeSCoP(Scop &S, ValueMapT &VMap);
|
||||
void finalizeSCoP(Scop &S);
|
||||
|
||||
/// @brief An empty destructor
|
||||
virtual ~BlockGenerator(){};
|
||||
@ -387,7 +387,7 @@ protected:
|
||||
/// the SCoP we need to initialize the memory cell we demoted the PHI into
|
||||
/// with the value corresponding to that predecessor. As a SCoP is a
|
||||
/// __single__ entry region there is at most one such predecessor.
|
||||
void createScalarInitialization(Region &R, ValueMapT &VMap);
|
||||
void createScalarInitialization(Region &R);
|
||||
|
||||
/// @brief Promote the values of demoted scalars after the SCoP.
|
||||
///
|
||||
|
@ -44,7 +44,7 @@ public:
|
||||
/// @brief Finalize code generation for the SCoP @p S.
|
||||
///
|
||||
/// @see BlockGenerator::finalizeSCoP(Scop &S)
|
||||
void finalizeSCoP(Scop &S) { BlockGen.finalizeSCoP(S, ValueMap); }
|
||||
void finalizeSCoP(Scop &S) { BlockGen.finalizeSCoP(S); }
|
||||
|
||||
IslExprBuilder &getExprBuilder() { return ExprBuilder; }
|
||||
|
||||
|
@ -466,8 +466,7 @@ void BlockGenerator::generateScalarStores(ScopStmt &Stmt, BasicBlock *BB,
|
||||
}
|
||||
}
|
||||
|
||||
void BlockGenerator::createScalarInitialization(Region &R,
|
||||
ValueMapT &GlobalMap) {
|
||||
void BlockGenerator::createScalarInitialization(Region &R) {
|
||||
// The split block __just before__ the region and optimized region.
|
||||
BasicBlock *SplitBB = R.getEnteringBlock();
|
||||
BranchInst *SplitBBTerm = cast<BranchInst>(SplitBB->getTerminator());
|
||||
@ -482,7 +481,6 @@ void BlockGenerator::createScalarInitialization(Region &R,
|
||||
// value prior to entering the optimized region.
|
||||
Builder.SetInsertPoint(StartBB->getTerminator());
|
||||
|
||||
ScalarAllocaMapTy EmptyMap;
|
||||
for (const auto &PHIOpMapping : PHIOpMap) {
|
||||
const PHINode *PHI = cast<PHINode>(PHIOpMapping.getFirst());
|
||||
|
||||
@ -493,8 +491,6 @@ void BlockGenerator::createScalarInitialization(Region &R,
|
||||
continue;
|
||||
|
||||
Value *ScalarValue = PHI->getIncomingValue(idx);
|
||||
ScalarValue =
|
||||
getNewScalarValue(ScalarValue, R, EmptyMap, GlobalMap, GlobalMap);
|
||||
|
||||
// If the split block is the predecessor initialize the PHI operator alloca.
|
||||
Builder.CreateStore(ScalarValue, PHIOpMapping.getSecond());
|
||||
@ -545,8 +541,8 @@ void BlockGenerator::createScalarFinalization(Region &R) {
|
||||
}
|
||||
}
|
||||
|
||||
void BlockGenerator::finalizeSCoP(Scop &S, ValueMapT &GlobalMap) {
|
||||
createScalarInitialization(S.getRegion(), GlobalMap);
|
||||
void BlockGenerator::finalizeSCoP(Scop &S) {
|
||||
createScalarInitialization(S.getRegion());
|
||||
createScalarFinalization(S.getRegion());
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user