From: Reid Spencer Date: Fri, 2 Jul 2004 03:22:53 +0000 (+0000) Subject: Name Change: llvm-abcd -> llvm-bcanalyzer X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=8a542aeb8478d53df8dc985972bdc479560ff72f;p=oota-llvm.git Name Change: llvm-abcd -> llvm-bcanalyzer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14555 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/llvm-abcd/Makefile b/tools/llvm-abcd/Makefile deleted file mode 100644 index 1c2a9dc881c..00000000000 --- a/tools/llvm-abcd/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -##===- tools/llvm-abcd/Makefile ----------------------------*- Makefile -*-===## -# -# The LLVM Compiler Infrastructure -# -# This file was developed by Reid Spencer and is distributed under the -# University of Illinois Open Source License. See LICENSE.TXT for details. -# -##===----------------------------------------------------------------------===## -LEVEL = ../.. - -TOOLNAME = llvm-abcd -USEDLIBS = bcreader vmcore support.a -include $(LEVEL)/Makefile.common diff --git a/tools/llvm-abcd/llvm-abcd.cpp b/tools/llvm-abcd/llvm-abcd.cpp deleted file mode 100644 index 820de7fe805..00000000000 --- a/tools/llvm-abcd/llvm-abcd.cpp +++ /dev/null @@ -1,98 +0,0 @@ -//===-- llvm-abcd.cpp - Analysis of Byte Code Dumper ----------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file was developed by Reid Spencer and is distributed under the -// University of Illinois Open Source License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This tool may be invoked in the following manner: -// llvm-abcd [options] - Read LLVM bytecode from stdin -// llvm-abcd [options] x.bc - Read LLVM bytecode from the x.bc file -// -// Options: -// --help - Output information about command line switches -// --nodetails - Don't print out detailed informaton about individual -// blocks and functions -// --dump - Dump low-level bytecode structure in readable format -// -// This tool provides analytical information about a bytecode file. It is -// intended as an aid to developers of bytecode reading and writing software. It -// produces on std::out a summary of the bytecode file that shows various -// statistics about the contents of the file. By default this information is -// detailed and contains information about individual bytecode blocks and the -// functions in the module. To avoid this more detailed output, use the -// -nodetails option to limit the output to just module level information. -// The tool is also able to print a bytecode file in a straight forward text -// format that shows the containment and relationships of the information in -// the bytecode file (-dump option). -//===----------------------------------------------------------------------===// - -#include "llvm/Analysis/Verifier.h" -#include "llvm/Bytecode/Analyzer.h" -#include "Support/CommandLine.h" -#include "llvm/System/Signals.h" -#include -#include - -using namespace llvm; - -static cl::opt - InputFilename(cl::Positional, cl::desc(""), cl::init("-")); - -static cl::opt NoDetails ("nodetails", cl::desc("Skip detailed output")); -static cl::opt Dump ("dump", cl::desc("Dump low level bytecode trace")); -static cl::opt Verify ("verify", cl::desc("Progressively verify module")); - -int -main(int argc, char **argv) -{ - cl::ParseCommandLineOptions(argc, argv, - " llvm-abcd Analysis of ByteCode Dumper\n"); - - PrintStackTraceOnErrorSignal(); - - std::ostream* Out = &std::cout; // Default to printing to stdout... - std::istream* In = &std::cin; // Default to reading stdin - std::string ErrorMessage; - BytecodeAnalysis bca; - - /// Determine what to generate - bca.dumpBytecode = Dump; - bca.detailedResults = !NoDetails; - bca.progressiveVerify = Verify; - - /// Analyze the bytecode file - Module* M = AnalyzeBytecodeFile(InputFilename, bca, &ErrorMessage); - - // All that abcd does is write the gathered statistics to the output - PrintBytecodeAnalysis(bca,*Out); - - if ( M && Verify ) { - std::string verificationMsg; - try { - verifyModule( *M, ThrowExceptionAction ); - } catch (std::string& errmsg ) { - verificationMsg = errmsg; - } - if ( verificationMsg.length() > 0 ) - std::cerr << "Final Verification Message: " << verificationMsg << "\n"; - } - - - // If there was an error, print it and stop. - if ( ErrorMessage.size() ) { - std::cerr << argv[0] << ": " << ErrorMessage << "\n"; - return 1; - } - - - if (Out != &std::cout) { - ((std::ofstream*)Out)->close(); - delete Out; - } - return 0; -} - -// vim: sw=2 diff --git a/tools/llvm-bcanalyzer/Makefile b/tools/llvm-bcanalyzer/Makefile new file mode 100644 index 00000000000..2608344f38e --- /dev/null +++ b/tools/llvm-bcanalyzer/Makefile @@ -0,0 +1,13 @@ +##===- tools/llvm-bcanalyzer/Makefile ----------------------*- Makefile -*-===## +# +# The LLVM Compiler Infrastructure +# +# This file was developed by Reid Spencer and is distributed under the +# University of Illinois Open Source License. See LICENSE.TXT for details. +# +##===----------------------------------------------------------------------===## +LEVEL = ../.. + +TOOLNAME = llvm-bcanalyzer +USEDLIBS = bcreader vmcore support.a +include $(LEVEL)/Makefile.common diff --git a/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp b/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp new file mode 100644 index 00000000000..d0ba73d2dca --- /dev/null +++ b/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp @@ -0,0 +1,98 @@ +//===-- llvm-bcanalyzer.cpp - Byte Code Analyzer --------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by Reid Spencer and is distributed under the +// University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This tool may be invoked in the following manner: +// llvm-bcanalyzer [options] - Read LLVM bytecode from stdin +// llvm-bcanalyzer [options] x.bc - Read LLVM bytecode from the x.bc file +// +// Options: +// --help - Output information about command line switches +// --nodetails - Don't print out detailed informaton about individual +// blocks and functions +// --dump - Dump low-level bytecode structure in readable format +// +// This tool provides analytical information about a bytecode file. It is +// intended as an aid to developers of bytecode reading and writing software. It +// produces on std::out a summary of the bytecode file that shows various +// statistics about the contents of the file. By default this information is +// detailed and contains information about individual bytecode blocks and the +// functions in the module. To avoid this more detailed output, use the +// -nodetails option to limit the output to just module level information. +// The tool is also able to print a bytecode file in a straight forward text +// format that shows the containment and relationships of the information in +// the bytecode file (-dump option). +//===----------------------------------------------------------------------===// + +#include "llvm/Analysis/Verifier.h" +#include "llvm/Bytecode/Analyzer.h" +#include "Support/CommandLine.h" +#include "llvm/System/Signals.h" +#include +#include + +using namespace llvm; + +static cl::opt + InputFilename(cl::Positional, cl::desc(""), cl::init("-")); + +static cl::opt NoDetails ("nodetails", cl::desc("Skip detailed output")); +static cl::opt Dump ("dump", cl::desc("Dump low level bytecode trace")); +static cl::opt Verify ("verify", cl::desc("Progressively verify module")); + +int +main(int argc, char **argv) +{ + cl::ParseCommandLineOptions(argc, argv, + " llvm-bcanalyzer Analysis of ByteCode Dumper\n"); + + PrintStackTraceOnErrorSignal(); + + std::ostream* Out = &std::cout; // Default to printing to stdout... + std::istream* In = &std::cin; // Default to reading stdin + std::string ErrorMessage; + BytecodeAnalysis bca; + + /// Determine what to generate + bca.dumpBytecode = Dump; + bca.detailedResults = !NoDetails; + bca.progressiveVerify = Verify; + + /// Analyze the bytecode file + Module* M = AnalyzeBytecodeFile(InputFilename, bca, &ErrorMessage); + + // All that bcanalyzer does is write the gathered statistics to the output + PrintBytecodeAnalysis(bca,*Out); + + if ( M && Verify ) { + std::string verificationMsg; + try { + verifyModule( *M, ThrowExceptionAction ); + } catch (std::string& errmsg ) { + verificationMsg = errmsg; + } + if ( verificationMsg.length() > 0 ) + std::cerr << "Final Verification Message: " << verificationMsg << "\n"; + } + + + // If there was an error, print it and stop. + if ( ErrorMessage.size() ) { + std::cerr << argv[0] << ": " << ErrorMessage << "\n"; + return 1; + } + + + if (Out != &std::cout) { + ((std::ofstream*)Out)->close(); + delete Out; + } + return 0; +} + +// vim: sw=2