mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Do map insert+find in one step. TODO -= 2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86133 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e9684c682a
commit
bcaa2157dd
@ -370,13 +370,13 @@ private:
|
|||||||
/// by properly seeding constants etc.
|
/// by properly seeding constants etc.
|
||||||
LatticeVal &getValueState(Value *V) {
|
LatticeVal &getValueState(Value *V) {
|
||||||
assert(!isa<StructType>(V->getType()) && "Should use getStructValueState");
|
assert(!isa<StructType>(V->getType()) && "Should use getStructValueState");
|
||||||
|
|
||||||
// TODO: Change to do insert+find in one operation.
|
|
||||||
DenseMap<Value*, LatticeVal>::iterator I = ValueState.find(V);
|
|
||||||
if (I != ValueState.end())
|
|
||||||
return I->second; // Common case, already in the map.
|
|
||||||
|
|
||||||
LatticeVal &LV = ValueState[V];
|
std::pair<DenseMap<Value*, LatticeVal>::iterator, bool> I =
|
||||||
|
ValueState.insert(std::make_pair(V, LatticeVal()));
|
||||||
|
LatticeVal &LV = I.first->second;
|
||||||
|
|
||||||
|
if (!I.second)
|
||||||
|
return LV; // Common case, already in the map.
|
||||||
|
|
||||||
if (Constant *C = dyn_cast<Constant>(V)) {
|
if (Constant *C = dyn_cast<Constant>(V)) {
|
||||||
// Undef values remain undefined.
|
// Undef values remain undefined.
|
||||||
@ -395,15 +395,15 @@ private:
|
|||||||
assert(isa<StructType>(V->getType()) && "Should use getValueState");
|
assert(isa<StructType>(V->getType()) && "Should use getValueState");
|
||||||
assert(i < cast<StructType>(V->getType())->getNumElements() &&
|
assert(i < cast<StructType>(V->getType())->getNumElements() &&
|
||||||
"Invalid element #");
|
"Invalid element #");
|
||||||
|
|
||||||
// TODO: Change to do insert+find in one operation.
|
std::pair<DenseMap<std::pair<Value*, unsigned>, LatticeVal>::iterator,
|
||||||
DenseMap<std::pair<Value*, unsigned>, LatticeVal>::iterator
|
bool> I = StructValueState.insert(
|
||||||
I = StructValueState.find(std::make_pair(V, i));
|
std::make_pair(std::make_pair(V, i), LatticeVal()));
|
||||||
if (I != StructValueState.end())
|
LatticeVal &LV = I.first->second;
|
||||||
return I->second; // Common case, already in the map.
|
|
||||||
|
if (!I.second)
|
||||||
LatticeVal &LV = StructValueState[std::make_pair(V, i)];
|
return LV; // Common case, already in the map.
|
||||||
|
|
||||||
if (Constant *C = dyn_cast<Constant>(V)) {
|
if (Constant *C = dyn_cast<Constant>(V)) {
|
||||||
if (isa<UndefValue>(C))
|
if (isa<UndefValue>(C))
|
||||||
; // Undef values remain undefined.
|
; // Undef values remain undefined.
|
||||||
|
Loading…
Reference in New Issue
Block a user