[PATCH] [Inlining] Teach the inliner pass to inline through statepoints.

Philip Reames listmail at philipreames.com
Wed Jun 24 12:00:29 PDT 2015


================
Comment at: include/llvm/IR/CallSite.h:107
@@ -105,1 +106,3 @@
 
+  FunTy *getMetaCallDestination() const {
+    FunTy *LiteralDest = getCalledFunction();
----------------
a) comments!  both here on getCalledFunction to distinguish
b) naming - "meta" isn't real descriptive.  Possible getCalledFunctionUnwrapped?

================
Comment at: lib/Transforms/IPO/Inliner.cpp:457
@@ -446,1 +456,3 @@
 
+  class InlineTask {
+    Function *Callee;
----------------
Again, it's really not clear to me that the extra level of abstraction is worthwhile here.  

================
Comment at: lib/Transforms/IPO/Inliner.cpp:612
@@ +611,3 @@
+            CallSite CS(Ptr);
+            InlineTaskList.emplace_back(CS.getMetaCallDestination(),
+                                        CS.getCaller(), CS, NewHistoryID);
----------------
Given we already have the getMetaCallDestination routine on callsite, I'm not sure what this extra complexity gains us.  

================
Comment at: lib/Transforms/Utils/InlineFunction.cpp:165
@@ -164,1 +164,3 @@
 
+  Function *Callee = cast<Function>(SP.getActualCallee());
+  if (!Callee->hasGC())
----------------
This looks unrelated?

http://reviews.llvm.org/D10633

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list