[PATCH] D52845: Update entry count for cold calls
    Wei Mi via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon Jan 14 12:12:15 PST 2019
    
    
  
wmi added inline comments.
================
Comment at: lib/IR/Function.cpp:1403-1404
 
+void Function::updateProfileData(int64_t entryDelta,
+                                 const ValueMap<const Value *, WeakTrackingVH> * VMap) {
+  auto CalleeCount = getEntryCount();
----------------
It seems to me a little bit weird to have some structure specific for inliner in the interface of llvm IR. It looks more like a transformation utility and better to stay under lib/Transforms/Utils/. We may create a new file for it if there is nowhere else to put. 
And maybe make the name more explicit like updateCalleeProfile. 
================
Comment at: lib/Transforms/IPO/SampleProfile.cpp:326
+    uint64_t entryCount;
+    uint64_t samples;
+  };
----------------
I don't find where samples is used?
================
Comment at: lib/Transforms/IPO/SampleProfile.cpp:848
             if ((isa<CallInst>(DI) || isa<InvokeInst>(DI)) &&
                 inlineCallInstruction(DI))
               LocalChanged = true;
----------------
Indirect call is skipped in the current patch, do you think it is better to handle it as well? I don't have strong opionion on this since it is cold. 
================
Comment at: lib/Transforms/IPO/SampleProfile.cpp:1488
   DenseSet<GlobalValue::GUID> InlinedGUIDs;
-  Changed |= inlineHotFunctions(F, InlinedGUIDs);
+  std::pair<bool,uint64_t> inlineResult = inlineHotFunctions(F, InlinedGUIDs);
+  Changed |= inlineResult.first;
----------------
inlineResult.second is never used. What is the intention to change the interface of inlineHotFunctions?
Repository:
  rL LLVM
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D52845/new/
https://reviews.llvm.org/D52845
    
    
More information about the llvm-commits
mailing list