[llvm-commits] CVS: llvm/lib/Reoptimizer/LightWtProfiling/Trigger/Globals.h Initialization.cpp RuntimeOptimizations.cpp SecondTrigger.cpp
Brian Gaeke
gaeke at cs.uiuc.edu
Thu Aug 21 11:51:02 PDT 2003
Changes in directory llvm/lib/Reoptimizer/LightWtProfiling/Trigger:
Globals.h updated: 1.3 -> 1.4
Initialization.cpp updated: 1.6 -> 1.7
RuntimeOptimizations.cpp updated: 1.4 -> 1.5
SecondTrigger.cpp updated: 1.16 -> 1.17
---
Log message:
Add option to say whether to run optimizeTrace() or the old layout
engine. Change optimizeTrace() to build a Trace object.
---
Diffs of the changes:
Index: llvm/lib/Reoptimizer/LightWtProfiling/Trigger/Globals.h
diff -u llvm/lib/Reoptimizer/LightWtProfiling/Trigger/Globals.h:1.3 llvm/lib/Reoptimizer/LightWtProfiling/Trigger/Globals.h:1.4
--- llvm/lib/Reoptimizer/LightWtProfiling/Trigger/Globals.h:1.3 Mon Aug 18 22:59:31 2003
+++ llvm/lib/Reoptimizer/LightWtProfiling/Trigger/Globals.h Thu Aug 21 11:50:14 2003
@@ -58,6 +58,12 @@
///
extern bool count_trace_cycles;
+/// When this is set to true, use the new trace optimizer that works
+/// on vectors of LLVM basic blocks instead of the old trace layout
+/// engine.
+///
+extern bool enable_trace_optimizer;
+
/// The current SPARC LLC writes the bytecode and its length into the
/// executable. We can access them via these global symbols.
///
Index: llvm/lib/Reoptimizer/LightWtProfiling/Trigger/Initialization.cpp
diff -u llvm/lib/Reoptimizer/LightWtProfiling/Trigger/Initialization.cpp:1.6 llvm/lib/Reoptimizer/LightWtProfiling/Trigger/Initialization.cpp:1.7
--- llvm/lib/Reoptimizer/LightWtProfiling/Trigger/Initialization.cpp:1.6 Wed Aug 20 15:41:15 2003
+++ llvm/lib/Reoptimizer/LightWtProfiling/Trigger/Initialization.cpp Thu Aug 21 11:50:14 2003
@@ -44,6 +44,8 @@
SLIThreshold("sli-threshold", cl::location(THRESHOLD_LEVEL_2), cl::init(50));
cl::opt<bool, true>
CountTraceCycles("count-trace-cycles", cl::location(count_trace_cycles));
+cl::opt<bool, true>
+EnableTraceOpt("enable-trace-opt", cl::location(enable_trace_optimizer));
/// reoptimizerInitialize - Initialization method for the
/// reoptimizer. A call to this function from main() is inserted by
Index: llvm/lib/Reoptimizer/LightWtProfiling/Trigger/RuntimeOptimizations.cpp
diff -u llvm/lib/Reoptimizer/LightWtProfiling/Trigger/RuntimeOptimizations.cpp:1.4 llvm/lib/Reoptimizer/LightWtProfiling/Trigger/RuntimeOptimizations.cpp:1.5
--- llvm/lib/Reoptimizer/LightWtProfiling/Trigger/RuntimeOptimizations.cpp:1.4 Wed Aug 20 10:33:54 2003
+++ llvm/lib/Reoptimizer/LightWtProfiling/Trigger/RuntimeOptimizations.cpp Thu Aug 21 11:50:15 2003
@@ -8,10 +8,16 @@
#include "GetTimer.h"
#include "Globals.h"
+#include "Trace.h"
#include "Support/Debug.h"
+#include "Support/StringExtras.h"
#include "llvm/PassManager.h"
#include "llvm/BasicBlock.h"
#include <set>
+#include <fstream>
+
+// From TraceToFunction.cpp
+// extern Function *runTraceToFunction (Trace &T);
// From Initialization.cpp
extern void initModules ();
@@ -43,7 +49,16 @@
if (!M)
initModules ();
- PassManager PM;
- // Add your favorite runtime optimization passes here.
- PM.run (*M);
+ // Create Trace object.
+ Trace T (vBB);
+ static int count = 0;
+ count++;
+ std::string filename ("traceout" + itostr (count) + ".txt");
+ DEBUG(std::cerr << "Dumping trace to file " << filename << "\n");
+ std::ofstream o (filename.c_str ());
+ T.print (o);
+
+ // Try to turn it into a function
+ // Function *TF = runTraceToFunction (T);
+ // DEBUG(std::cerr << "Function created from trace: \n" << *TF);
}
Index: llvm/lib/Reoptimizer/LightWtProfiling/Trigger/SecondTrigger.cpp
diff -u llvm/lib/Reoptimizer/LightWtProfiling/Trigger/SecondTrigger.cpp:1.16 llvm/lib/Reoptimizer/LightWtProfiling/Trigger/SecondTrigger.cpp:1.17
--- llvm/lib/Reoptimizer/LightWtProfiling/Trigger/SecondTrigger.cpp:1.16 Mon Aug 18 23:01:36 2003
+++ llvm/lib/Reoptimizer/LightWtProfiling/Trigger/SecondTrigger.cpp Thu Aug 21 11:50:15 2003
@@ -530,11 +530,16 @@
std::map<int, std::map<int, int> > pathIntersections;
getPathIntersections(pathIntersections, paths);
- //use path 0 to form vBB
- //std::vector<BasicBlock *> vBB;
- //constructVBB (paths[0], start, vBB);
- //if (!vBB.empty()) { optimizeTrace (vBB, firstLevelTraceStartAddr); }
- //return;
+ // Check whether to use the new trace optimizer which works on
+ // vectors of llvm basic blocks, or the old trace layout engine
+ // which works on SPARC instructions.
+ if (enable_trace_optimizer) {
+ //use path 0 to form vBB
+ std::vector<BasicBlock *> vBB;
+ constructVBB (paths[0], start, vBB);
+ if (!vBB.empty()) { optimizeTrace (vBB, firstLevelTraceStartAddr); }
+ return;
+ }
#ifndef NDEBUG
for(std::map<int, std::map<int, int> >::iterator MI =
More information about the llvm-commits
mailing list