Don't insert null entries into the scalar map for constexpr (cast null to Ty)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5523 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-02-09 23:04:12 +00:00
parent f013d3d40b
commit 1e56c54f41

View File

@ -174,16 +174,22 @@ DSNodeHandle GraphBuilder::getValueDest(Value &Val) {
return NH = getValueDest(*CPR->getValue());
} else if (ConstantExpr *CE = dyn_cast<ConstantExpr>(C)) {
if (CE->getOpcode() == Instruction::Cast)
return NH = getValueDest(*CE->getOperand(0));
if (CE->getOpcode() == Instruction::GetElementPtr) {
NH = getValueDest(*CE->getOperand(0));
else if (CE->getOpcode() == Instruction::GetElementPtr) {
visitGetElementPtrInst(*CE);
hash_map<Value*, DSNodeHandle>::iterator I = ScalarMap.find(CE);
assert(I != ScalarMap.end() && "GEP didn't get processed right?");
return NH = I->second;
NH = I->second;
} else {
// This returns a conservative unknown node for any unhandled ConstExpr
return NH = createNode(DSNode::UnknownNode);
}
if (NH.getNode() == 0) { // (getelementptr null, X) returns null
ScalarMap.erase(V);
return 0;
}
return NH;
// This returns a conservative unknown node for any unhandled ConstExpr
return NH = createNode(DSNode::UnknownNode);
} else if (ConstantIntegral *CI = dyn_cast<ConstantIntegral>(C)) {
// Random constants are unknown mem
return NH = createNode(DSNode::UnknownNode);