Use CallSite to simplify code
authorDavid Blaikie <dblaikie@gmail.com>
Tue, 29 Nov 2016 19:42:27 +0000 (19:42 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Tue, 29 Nov 2016 19:42:27 +0000 (19:42 +0000)
llvm-svn: 288192

llvm/lib/Transforms/IPO/SampleProfile.cpp

index cf0e02e..560bc3e 100644 (file)
@@ -647,15 +647,13 @@ bool SampleProfileLoader::inlineHotFunctions(Function &F) {
     }
     for (auto I : CIS) {
       InlineFunctionInfo IFI(nullptr, ACT ? &GetAssumptionCache : nullptr);
-      CallInst *CI = dyn_cast<CallInst>(I);
-      InvokeInst *II = dyn_cast<InvokeInst>(I);
-      Function *CalledFunction =
-          (CI == nullptr ? II->getCalledFunction() : CI->getCalledFunction());
+      CallSite CS(I);
+      Function *CalledFunction = CS.getCalledFunction();
       if (!CalledFunction || !CalledFunction->getSubprogram())
         continue;
       DebugLoc DLoc = I->getDebugLoc();
       uint64_t NumSamples = findCalleeFunctionSamples(*I)->getTotalSamples();
-      if ((CI && InlineFunction(CI, IFI)) || (II && InlineFunction(II, IFI))) {
+      if (InlineFunction(CS, IFI)) {
         LocalChanged = true;
         emitOptimizationRemark(Ctx, DEBUG_TYPE, F, DLoc,
                                Twine("inlined hot callee '") +