//
//===----------------------------------------------------------------------===//
-#ifndef INLINER_H
-#define INLINER_H
+#ifndef LLVM_TRANSFORMS_IPO_INLINERPASS_H
+#define LLVM_TRANSFORMS_IPO_INLINERPASS_H
#include "llvm/CallGraphSCCPass.h"
-#include "llvm/Transforms/Utils/InlineCost.h"
-
namespace llvm {
class CallSite;
class TargetData;
+ class InlineCost;
+ template<class PtrType, unsigned SmallSize>
+ class SmallPtrSet;
/// Inliner - This class contains all of the helper code which is used to
/// perform the inlining operations that do not depend on the policy.
// processing to avoid breaking the SCC traversal.
virtual bool doFinalization(CallGraph &CG);
- // InlineCallIfPossible
- bool InlineCallIfPossible(CallSite CS, CallGraph &CG,
- const SmallPtrSet<Function*, 8> &SCCFunctions,
- const TargetData *TD);
-
/// This method returns the value specified by the -inline-threshold value,
/// specified on the command line. This is typically not directly needed.
///
/// shouldInline - Return true if the inliner should attempt to
/// inline at the given CallSite.
bool shouldInline(CallSite CS);
+
+ bool InlineCallIfPossible(CallSite CS, CallGraph &CG,
+ const SmallPtrSet<Function*, 8> &SCCFunctions,
+ const TargetData *TD);
};
} // End llvm namespace
#ifndef LLVM_TRANSFORMS_UTILS_INLINECOST_H
#define LLVM_TRANSFORMS_UTILS_INLINECOST_H
-#include "llvm/ADT/SmallPtrSet.h"
#include <cassert>
#include <climits>
#include <map>
class Value;
class Function;
class CallSite;
+ template<class PtrType, unsigned SmallSize>
+ class SmallPtrSet;
/// InlineCost - Represent the cost of inlining a function. This
/// supports special values for functions which should "always" or
#include "llvm/Support/CallSite.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Transforms/IPO/InlinerPass.h"
+#include "llvm/Transforms/Utils/InlineCost.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
+#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/Statistic.h"
#include <set>
using namespace llvm;
Function *Callee = CS.getCalledFunction();
Function *Caller = CS.getCaller();
- if (!InlineFunction(CS, &CG, TD)) return false;
+ if (!InlineFunction(CS, &CG, TD))
+ return false;
// If the inlined function had a higher stack protection level than the
// calling function, then bump up the caller's stack protection level.