Allow the inlining limit to be controlled from the command line!
authorChris Lattner <sabre@nondot.org>
Sat, 28 Jun 2003 15:57:04 +0000 (15:57 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 28 Jun 2003 15:57:04 +0000 (15:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6929 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/InlineSimple.cpp

index 0151a2d2ac6dfc191504a886336ee0f1b3f2720a..4839186966ee8f2924b1e7fd41e800a99600a6eb 100644 (file)
 #include "llvm/iOther.h"
 #include "llvm/iMemory.h"
 #include "Support/Statistic.h"
+#include "Support/CommandLine.h"
 #include <set>
 
 namespace {
   Statistic<> NumInlined("inline", "Number of functions inlined");
+  cl::opt<unsigned>             // FIXME: 200 is VERY conservative
+  InlineLimit("inline-threshold", cl::Hidden, cl::init(200),
+              cl::desc("Control the amount of inlining to perform (default = 200)"));
 
   struct FunctionInlining : public Pass {
     virtual bool run(Module &M) {
@@ -55,7 +59,7 @@ static inline bool ShouldInlineFunction(const CallInst *CI) {
   // inliner is.  If this value is negative after the final computation,
   // inlining is not performed.
   //
-  int InlineQuality = 200;            // FIXME: This is VERY conservative
+  int InlineQuality = InlineLimit;
 
   // If there is only one call of the function, and it has internal linkage,
   // make it almost guaranteed to be inlined.