diff options
| author | Nick Lewycky <nicholas@mxc.ca> | 2009-09-19 18:33:36 +0000 | 
|---|---|---|
| committer | Nick Lewycky <nicholas@mxc.ca> | 2009-09-19 18:33:36 +0000 | 
| commit | 7e6deb1cb407b68d7917bc1aab24968a538c0022 (patch) | |
| tree | a598c7c84e2bf11d787225404b1ff811aea068ca /llvm/lib/Analysis | |
| parent | 1636b7ef47fd112fa265ce9497668fc8e2f96c19 (diff) | |
| download | bcm5719-llvm-7e6deb1cb407b68d7917bc1aab24968a538c0022.tar.gz bcm5719-llvm-7e6deb1cb407b68d7917bc1aab24968a538c0022.zip | |
Lett users of sparse propagation do their own thing with phi nodes if they want
to. This can be combined with LCSSA or SSI form to store more information on a
PHINode than can be computed by looking at its incoming values.
llvm-svn: 82317
Diffstat (limited to 'llvm/lib/Analysis')
| -rw-r--r-- | llvm/lib/Analysis/SparsePropagation.cpp | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/llvm/lib/Analysis/SparsePropagation.cpp b/llvm/lib/Analysis/SparsePropagation.cpp index 17bb73f991e..8a74745dd3f 100644 --- a/llvm/lib/Analysis/SparsePropagation.cpp +++ b/llvm/lib/Analysis/SparsePropagation.cpp @@ -223,6 +223,13 @@ void SparseSolver::visitTerminatorInst(TerminatorInst &TI) {  }  void SparseSolver::visitPHINode(PHINode &PN) { +  if (LatticeFunc->IsSpecialCasedPHI(&PN)) { +    LatticeVal IV = LatticeFunc->ComputeInstructionState(PN, *this); +    if (IV != LatticeFunc->getUntrackedVal()) +      UpdateState(PN, IV); +    return; +  } +    LatticeVal PNIV = getOrInitValueState(&PN);    LatticeVal Overdefined = LatticeFunc->getOverdefinedVal(); | 

