From 3dc67dd95b07f8e16b61a1d7d087867068597ec2 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 22 Jan 2002 03:30:46 +0000 Subject: [PATCH] Misc cleanups. Allocate ofstream statically, and use a pass to write out the bytecode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1529 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/gccas/gccas.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/tools/gccas/gccas.cpp b/tools/gccas/gccas.cpp index fffcdab5e56..ae0320c2716 100644 --- a/tools/gccas/gccas.cpp +++ b/tools/gccas/gccas.cpp @@ -1,11 +1,11 @@ -//===------------------------------------------------------------------------=== +//===----------------------------------------------------------------------===// // LLVM 'GCCAS' UTILITY // // This utility is designed to be used by the GCC frontend for creating // bytecode files from it's intermediate llvm assembly. The requirements for // this utility are thus slightly different than that of the standard as util. // -//===------------------------------------------------------------------------=== +//===----------------------------------------------------------------------===// #include "llvm/Module.h" #include "llvm/Assembly/Parser.h" @@ -16,7 +16,7 @@ #include "llvm/Transforms/Scalar/DCE.h" #include "llvm/Transforms/Scalar/IndVarSimplify.h" #include "llvm/Transforms/Scalar/InstructionCombining.h" -#include "llvm/Bytecode/Writer.h" +#include "llvm/Bytecode/WriteBytecodePass.h" #include "Support/CommandLine.h" #include #include @@ -29,7 +29,6 @@ cl::String OutputFilename("o", "Override output filename", cl::NoFlags, ""); int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, " llvm .s -> .o assembler for GCC\n"); - ostream *Out = 0; std::auto_ptr M; try { // Parse the file now... @@ -55,8 +54,8 @@ int main(int argc, char **argv) { OutputFilename += ".o"; } - Out = new std::ofstream(OutputFilename.c_str(), ios::out); - if (!Out->good()) { + std::ofstream Out(OutputFilename.c_str(), ios::out); + if (!Out.good()) { cerr << "Error opening " << OutputFilename << "!\n"; return 1; } @@ -73,13 +72,10 @@ int main(int argc, char **argv) { Passes.add(new ConstantMerge()); // Merge dup global consts Passes.add(new InstructionCombining()); // Combine silly seq's Passes.add(new DeadCodeElimination()); // Remove Dead code/vars + Passes.add(new WriteBytecodePass(&Out)); // Write bytecode to file... - // Run our queue of passes all at once now, efficiently. This form of - // runAllPasses frees the Pass objects after runAllPasses completes. - // + // Run our queue of passes all at once now, efficiently. Passes.run(M.get()); - - WriteBytecodeToFile(M.get(), *Out); return 0; }