[SCCP] Factor out common code.

llvm-svn: 275308
This commit is contained in:
Davide Italiano 2016-07-13 19:33:25 +00:00
parent 2185001551
commit 390b7ea533
1 changed files with 9 additions and 8 deletions

View File

@ -316,6 +316,13 @@ public:
}
private:
// pushToWorkList - Helper for markConstant/markForcedConstant
void pushToWorkList(LatticeVal &IV, Value *V) {
if (IV.isOverdefined())
return OverdefinedInstWorkList.push_back(V);
InstWorkList.push_back(V);
}
// markConstant - Make a value be marked as "constant". If the value
// is not already a constant, add it to the instruction work list so that
// the users of the instruction are updated later.
@ -323,10 +330,7 @@ private:
void markConstant(LatticeVal &IV, Value *V, Constant *C) {
if (!IV.markConstant(C)) return;
DEBUG(dbgs() << "markConstant: " << *C << ": " << *V << '\n');
if (IV.isOverdefined())
OverdefinedInstWorkList.push_back(V);
else
InstWorkList.push_back(V);
pushToWorkList(IV, V);
}
void markConstant(Value *V, Constant *C) {
@ -339,10 +343,7 @@ private:
LatticeVal &IV = ValueState[V];
IV.markForcedConstant(C);
DEBUG(dbgs() << "markForcedConstant: " << *C << ": " << *V << '\n');
if (IV.isOverdefined())
OverdefinedInstWorkList.push_back(V);
else
InstWorkList.push_back(V);
pushToWorkList(IV, V);
}