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
This commit is contained in:
Chris Lattner 2001-10-18 06:05:15 +00:00
parent 4457163bc4
commit 0eafc31684
2 changed files with 14 additions and 16 deletions

View File

@ -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

View File

@ -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);