- } else if (isFreeCall(U, TLI)) {
- Writers.push_back(cast<Instruction>(U)->getParent()->getParent());
- } else if (CallInst *CI = dyn_cast<CallInst>(U)) {
- // Make sure that this is just the function being called, not that it is
- // passing into the function.
- for (unsigned i = 0, e = CI->getNumArgOperands(); i != e; ++i)
- if (CI->getArgOperand(i) == V) return true;
- } else if (InvokeInst *II = dyn_cast<InvokeInst>(U)) {
+ } else if (Operator::getOpcode(I) == Instruction::BitCast) {
+ if (AnalyzeUsesOfPointer(I, Readers, Writers, OkayStoreDest))
+ return true;
+ } else if (CallSite CS = I) {