"This patch adds a virtual call to AbstractLatticeFunction to derive a

type lattice value for an Argument*, giving clients the opportunity to
use something other than Top for it if they choose to."

Patch by John McCall!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54589 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2008-08-09 17:23:35 +00:00
parent 1d85163ec2
commit afcde473c5
2 changed files with 10 additions and 1 deletions

View File

@ -57,8 +57,10 @@ SparseSolver::LatticeVal SparseSolver::getOrInitValueState(Value *V) {
return LatticeFunc->getUntrackedVal();
else if (Constant *C = dyn_cast<Constant>(V))
LV = LatticeFunc->ComputeConstant(C);
else if (Argument *A = dyn_cast<Argument>(V))
LV = LatticeFunc->ComputeArgument(A);
else if (!isa<Instruction>(V))
// Non-instructions (e.g. formal arguments) are overdefined.
// All other non-instructions are overdefined.
LV = LatticeFunc->getOverdefinedVal();
else
// All instructions are underdefined by default.