- virtual float getInlineFudgeFactor(CallSite CS) = 0;
-
- /// resetCachedCostInfo - erase any cached cost data from the derived class.
- /// If the derived class has no such data this can be empty.
- ///
- virtual void resetCachedCostInfo(Function* Caller) = 0;
+ /// This also includes a hack in the form of the 'AlwaysInlineOnly' flag
+ /// which restricts it to deleting functions with an 'AlwaysInline'
+ /// attribute. This is useful for the InlineAlways pass that only wants to
+ /// deal with that subset of the functions.
+ bool removeDeadFunctions(CallGraph &CG, bool AlwaysInlineOnly = false);