mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-28 09:31:03 +00:00
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:
parent
4457163bc4
commit
0eafc31684
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user