Lines Matching refs:CS
103 bool simplifyCallSite(Function *F, CallSite CS);
134 bool visitCallSite(CallSite CS);
149 bool analyzeCall(CallSite CS);
677 bool CallAnalyzer::simplifyCallSite(Function *F, CallSite CS) { in simplifyCallSite() argument
687 ConstantArgs.reserve(CS.arg_size()); in simplifyCallSite()
688 for (CallSite::arg_iterator I = CS.arg_begin(), E = CS.arg_end(); in simplifyCallSite()
699 SimplifiedValues[CS.getInstruction()] = C; in simplifyCallSite()
706 bool CallAnalyzer::visitCallSite(CallSite CS) { in visitCallSite() argument
707 if (CS.isCall() && cast<CallInst>(CS.getInstruction())->canReturnTwice() && in visitCallSite()
714 if (CS.isCall() && in visitCallSite()
715 cast<CallInst>(CS.getInstruction())->hasFnAttr(Attribute::NoDuplicate)) in visitCallSite()
718 if (Function *F = CS.getCalledFunction()) { in visitCallSite()
720 if (simplifyCallSite(F, CS)) in visitCallSite()
725 if (IntrinsicInst *II = dyn_cast<IntrinsicInst>(CS.getInstruction())) { in visitCallSite()
728 return Base::visitCallSite(CS); in visitCallSite()
738 if (F == CS.getInstruction()->getParent()->getParent()) { in visitCallSite()
748 Cost += CS.arg_size() * InlineConstants::InstrCost; in visitCallSite()
752 if (!isa<InlineAsm>(CS.getCalledValue())) in visitCallSite()
756 return Base::visitCallSite(CS); in visitCallSite()
761 Value *Callee = CS.getCalledValue(); in visitCallSite()
765 Cost += CS.arg_size() * InlineConstants::InstrCost; in visitCallSite()
771 return Base::visitCallSite(CS); in visitCallSite()
779 if (CA.analyzeCall(CS)) { in visitCallSite()
785 return Base::visitCallSite(CS); in visitCallSite()
899 bool CallAnalyzer::analyzeCall(CallSite CS) { in analyzeCall() argument
922 for (unsigned I = 0, E = CS.arg_size(); I != E; ++I) { in analyzeCall()
923 if (TD && CS.isByValArgument(I)) { in analyzeCall()
926 PointerType *PTy = cast<PointerType>(CS.getArgument(I)->getType()); in analyzeCall()
951 &F == CS.getCalledFunction(); in analyzeCall()
959 Instruction *Instr = CS.getInstruction(); in analyzeCall()
978 Function *Caller = CS.getInstruction()->getParent()->getParent(); in analyzeCall()
998 CallSite::arg_iterator CAI = CS.arg_begin(); in analyzeCall()
1001 assert(CAI != CS.arg_end()); in analyzeCall()
1170 InlineCost InlineCostAnalysis::getInlineCost(CallSite CS, int Threshold) { in getInlineCost() argument
1171 return getInlineCost(CS, CS.getCalledFunction(), Threshold); in getInlineCost()
1174 InlineCost InlineCostAnalysis::getInlineCost(CallSite CS, Function *Callee, in getInlineCost() argument
1195 CS.isNoInline()) in getInlineCost()
1202 bool ShouldInline = CA.analyzeCall(CS); in getInlineCost()
1226 CallSite CS(II); in isInlineViable() local
1227 if (!CS) in isInlineViable()
1231 if (&F == CS.getCalledFunction()) in isInlineViable()
1236 if (!ReturnsTwice && CS.isCall() && in isInlineViable()
1237 cast<CallInst>(CS.getInstruction())->canReturnTwice()) in isInlineViable()