diff options
Diffstat (limited to 'llvm/lib/Analysis')
| -rw-r--r-- | llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp | 11 | ||||
| -rw-r--r-- | llvm/lib/Analysis/DataStructure/TopDownClosure.cpp | 11 | 
2 files changed, 20 insertions, 2 deletions
diff --git a/llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp b/llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp index 640463db301..5dcaa31dca2 100644 --- a/llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp +++ b/llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp @@ -527,5 +527,14 @@ void BUDataStructures::copyValue(Value *From, Value *To) {      return;    } -  assert(!isa<GlobalVariable>(From) && "Do not know how to copy GV's yet!"); +  if (const Function *F = getFnForValue(To)) { +    DSGraph &G = getDSGraph(*F); +    G.getScalarMap().copyScalarIfExists(From, To); +    return; +  } + +  std::cerr << *From; +  std::cerr << *To; +  assert(0 && "Do not know how to copy this yet!"); +  abort();  } diff --git a/llvm/lib/Analysis/DataStructure/TopDownClosure.cpp b/llvm/lib/Analysis/DataStructure/TopDownClosure.cpp index 45b2f2b4d2d..e44cea1d8e1 100644 --- a/llvm/lib/Analysis/DataStructure/TopDownClosure.cpp +++ b/llvm/lib/Analysis/DataStructure/TopDownClosure.cpp @@ -468,5 +468,14 @@ void TDDataStructures::copyValue(Value *From, Value *To) {      return;    } -  assert(!isa<GlobalVariable>(From) && "Do not know how to copy GV's yet!"); +  if (const Function *F = getFnForValue(To)) { +    DSGraph &G = getDSGraph(*F); +    G.getScalarMap().copyScalarIfExists(From, To); +    return; +  } + +  std::cerr << *From; +  std::cerr << *To; +  assert(0 && "Do not know how to copy this yet!"); +  abort();  }  | 

