diff options
author | Chris Lattner <sabre@nondot.org> | 2001-10-18 06:05:15 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2001-10-18 06:05:15 +0000 |
commit | 0eafc31684d6c512c6a56868031b8c1cc4ab4ed6 (patch) | |
tree | e9ca4aef146a11cd8e489ccca9af88ffa0ccf22e /tools/opt | |
parent | 4457163bc40b5ef94fb478f7c33dce6a51fa8d01 (diff) | |
download | external_llvm-0eafc31684d6c512c6a56868031b8c1cc4ab4ed6.zip external_llvm-0eafc31684d6c512c6a56868031b8c1cc4ab4ed6.tar.gz external_llvm-0eafc31684d6c512c6a56868031b8c1cc4ab4ed6.tar.bz2 |
Add support to insert trace code as an "optimization"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@884 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/opt')
-rw-r--r-- | tools/opt/Makefile | 2 | ||||
-rw-r--r-- | tools/opt/opt.cpp | 28 |
2 files changed, 14 insertions, 16 deletions
diff --git a/tools/opt/Makefile b/tools/opt/Makefile index d374f0a..604e476 100644 --- a/tools/opt/Makefile +++ b/tools/opt/Makefile @@ -1,6 +1,6 @@ LEVEL = ../.. TOOLNAME = opt -USEDLIBS = opt bcreader bcwriter asmwriter analysis vmcore support +USEDLIBS = opt bcreader bcwriter asmwriter analysis vmcore support instrument include $(LEVEL)/Makefile.common diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index 3d62ef8..1e9117c 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -1,23 +1,10 @@ -//===------------------------------------------------------------------------=== +//===----------------------------------------------------------------------===// // LLVM 'OPT' UTILITY // -// This utility may be invoked in the following manner: -// opt --help - Output information about command line switches -// opt [options] -dce - Run a dead code elimination pass on input -// bytecodes -// opt [options] -constprop - Run a constant propogation pass on input -// bytecodes -// opt [options] -inline - Run a method inlining pass on input bytecodes -// opt [options] -strip - Strip symbol tables out of methods -// opt [options] -mstrip - Strip module & method symbol tables -// // Optimizations may be specified an arbitrary number of times on the command // line, they are run in the order specified. // -// TODO: Add a -all option to keep applying all optimizations until the program -// stops permuting. -// -//===------------------------------------------------------------------------=== +//===----------------------------------------------------------------------===// #include <iostream.h> #include <fstream.h> @@ -26,6 +13,8 @@ #include "llvm/Bytecode/Writer.h" #include "llvm/Support/CommandLine.h" #include "llvm/Optimizations/AllOpts.h" +#include "llvm/Transforms/Instrumentation/TraceValues.h" +#include "llvm/Transforms/PrintModulePass.h" using namespace opt; @@ -33,6 +22,9 @@ enum Opts { // Basic optimizations dce, constprop, inlining, strip, mstrip, + // Miscellaneous Transformations + trace, tracem, print, + // More powerful optimizations indvars, sccp, adce, raise, }; @@ -50,6 +42,9 @@ struct { { sccp , new opt::SCCPPass() }, { adce , new opt::AgressiveDCE() }, { raise , new opt::RaiseRepresentation() }, + { trace , new InsertTraceCode(true, true) }, + { tracem , new InsertTraceCode(false, true) }, + { print , new PrintModulePass("Current Method: \n",&cerr) }, }; cl::String InputFilename ("", "Load <arg> file to optimize", cl::NoFlags, "-"); @@ -67,6 +62,9 @@ cl::EnumList<enum Opts> OptimizationList(cl::NoFlags, clEnumVal(sccp , "Sparse Conditional Constant Propogation"), clEnumVal(adce , "Agressive DCE"), clEnumVal(raise , "Raise to Higher Level"), + clEnumVal(trace , "Insert BB & Method trace code"), + clEnumVal(tracem , "Insert Method trace code only"), + clEnumVal(print , "Print working method to stderr"), 0); |