forked from OSchip/llvm-project
Make it illegal to call getDependency* on non-memory instructions
like binary operators. llvm-svn: 60600
This commit is contained in:
parent
88909849bb
commit
eda6432beb
|
@ -180,7 +180,8 @@ namespace llvm {
|
|||
virtual void getAnalysisUsage(AnalysisUsage &AU) const;
|
||||
|
||||
/// getDependency - Return the instruction on which a memory operation
|
||||
/// depends. See the class comment for more details.
|
||||
/// depends. See the class comment for more details. It is illegal to call
|
||||
/// this on non-memory instructions.
|
||||
MemDepResult getDependency(Instruction *QueryInst);
|
||||
|
||||
/// getDependencyFrom - Return the instruction on which the memory operation
|
||||
|
|
|
@ -118,10 +118,11 @@ getDependencyFrom(Instruction *QueryInst, BasicBlock::iterator ScanIt,
|
|||
MemPtr = F->getPointerOperand();
|
||||
// FreeInsts erase the entire structure, not just a field.
|
||||
MemSize = ~0UL;
|
||||
} else if (isa<CallInst>(QueryInst) || isa<InvokeInst>(QueryInst))
|
||||
} else {
|
||||
assert((isa<CallInst>(QueryInst) || isa<InvokeInst>(QueryInst)) &&
|
||||
"Can only get dependency info for memory instructions!");
|
||||
return getCallSiteDependency(CallSite::get(QueryInst), ScanIt, BB);
|
||||
else // Non-memory instructions depend on nothing.
|
||||
return MemDepResult::getNone();
|
||||
}
|
||||
|
||||
// Walk backwards through the basic block, looking for dependencies
|
||||
while (ScanIt != BB->begin()) {
|
||||
|
|
Loading…
Reference in New Issue