aboutsummaryrefslogtreecommitdiff
path: root/tools/llvm-abcd/llvm-abcd.cpp
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-07-02 03:22:53 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-07-02 03:22:53 +0000
commit8a542aeb8478d53df8dc985972bdc479560ff72f (patch)
tree0e949c6f933eb49aaf5a97043c8193b113be1980 /tools/llvm-abcd/llvm-abcd.cpp
parent452069abccca2a2ea2887220aceeedda8bb6b6d7 (diff)
Name Change: llvm-abcd -> llvm-bcanalyzer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14555 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-abcd/llvm-abcd.cpp')
-rw-r--r--tools/llvm-abcd/llvm-abcd.cpp98
1 files changed, 0 insertions, 98 deletions
diff --git a/tools/llvm-abcd/llvm-abcd.cpp b/tools/llvm-abcd/llvm-abcd.cpp
deleted file mode 100644
index 820de7fe80..0000000000
--- 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 <fstream>
-#include <iostream>
-
-using namespace llvm;
-
-static cl::opt<std::string>
- InputFilename(cl::Positional, cl::desc("<input bytecode>"), cl::init("-"));
-
-static cl::opt<bool> NoDetails ("nodetails", cl::desc("Skip detailed output"));
-static cl::opt<bool> Dump ("dump", cl::desc("Dump low level bytecode trace"));
-static cl::opt<bool> 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