From 80a033358d8da09d1f62b0b3ba98cee0346c0a49 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 28 Mar 2009 03:53:02 +0000 Subject: [PATCH] eliminate some wrappers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67904 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/TranslationUnit.h | 17 ---------- lib/AST/TranslationUnit.cpp | 51 ---------------------------- tools/clang-cc/ASTConsumers.cpp | 27 +++++++++++++-- tools/clang-cc/SerializationTest.cpp | 16 ++++++++- 4 files changed, 40 insertions(+), 71 deletions(-) diff --git a/include/clang/AST/TranslationUnit.h b/include/clang/AST/TranslationUnit.h index 3c6344f2d9..40513e2019 100644 --- a/include/clang/AST/TranslationUnit.h +++ b/include/clang/AST/TranslationUnit.h @@ -61,27 +61,10 @@ public: iterator end() const { return Context->getTranslationUnitDecl()->decls_end(); } }; -/// EmitASTBitcodeFile - Emit a translation unit to a bitcode file. -bool EmitASTBitcodeFile(const TranslationUnit& TU, - const llvm::sys::Path& Filename); - -bool EmitASTBitcodeFile(const TranslationUnit* TU, - const llvm::sys::Path& Filename); - -/// EmitASTBitcodeStream - Emit a translation unit to a std::ostream. -bool EmitASTBitcodeStream(const TranslationUnit& TU, - std::ostream& Stream); - -bool EmitASTBitcodeStream(const TranslationUnit* TU, - std::ostream& Stream); - /// EmitASTBitcodeBuffer - Emit a translation unit to a buffer. bool EmitASTBitcodeBuffer(const TranslationUnit& TU, std::vector& Buffer); -bool EmitASTBitcodeBuffer(const TranslationUnit* TU, - std::vector& Buffer); - /// ReadASTBitcodeBuffer - Reconsitute a translation unit from a buffer. TranslationUnit* ReadASTBitcodeBuffer(llvm::MemoryBuffer& MBuffer, FileManager& FMgr); diff --git a/lib/AST/TranslationUnit.cpp b/lib/AST/TranslationUnit.cpp index a0a800c1e3..55ab1a7360 100644 --- a/lib/AST/TranslationUnit.cpp +++ b/lib/AST/TranslationUnit.cpp @@ -39,24 +39,6 @@ TranslationUnit::~TranslationUnit() { } } -bool clang::EmitASTBitcodeFile(const TranslationUnit* TU, - const llvm::sys::Path& Filename) { - - return TU ? EmitASTBitcodeFile(*TU, Filename) : false; -} - -bool clang::EmitASTBitcodeBuffer(const TranslationUnit* TU, - std::vector& Buffer) { - - return TU ? EmitASTBitcodeBuffer(*TU, Buffer) : false; -} - -bool clang::EmitASTBitcodeStream(const TranslationUnit* TU, - std::ostream& Stream) { - - return TU ? EmitASTBitcodeStream(*TU, Stream) : false; -} - bool clang::EmitASTBitcodeBuffer(const TranslationUnit& TU, std::vector& Buffer) { // Create bitstream. @@ -82,39 +64,6 @@ bool clang::EmitASTBitcodeBuffer(const TranslationUnit& TU, return true; } -bool clang::EmitASTBitcodeStream(const TranslationUnit& TU, - std::ostream& Stream) { - - // Reserve 256K for bitstream buffer. - std::vector Buffer; - Buffer.reserve(256*1024); - - EmitASTBitcodeBuffer(TU,Buffer); - - // Write the bits to disk. - Stream.write((char*)&Buffer.front(), Buffer.size()); - return true; -} - -bool clang::EmitASTBitcodeFile(const TranslationUnit& TU, - const llvm::sys::Path& Filename) { - - // Reserve 256K for bitstream buffer. - std::vector Buffer; - Buffer.reserve(256*1024); - - EmitASTBitcodeBuffer(TU,Buffer); - - // Write the bits to disk. - if (FILE* fp = fopen(Filename.c_str(),"wb")) { - fwrite((char*)&Buffer.front(), sizeof(char), Buffer.size(), fp); - fclose(fp); - return true; - } - - return false; -} - TranslationUnit* clang::ReadASTBitcodeBuffer(llvm::MemoryBuffer& MBuffer, FileManager& FMgr) { diff --git a/tools/clang-cc/ASTConsumers.cpp b/tools/clang-cc/ASTConsumers.cpp index c3828a9e2b..c040a54b44 100644 --- a/tools/clang-cc/ASTConsumers.cpp +++ b/tools/clang-cc/ASTConsumers.cpp @@ -977,7 +977,18 @@ public: virtual void HandleTranslationUnit(TranslationUnit& TU) { if (Diags.hasErrorOccurred()) return; - EmitASTBitcodeFile(&TU, FName); + + // Reserve 256K for bitstream buffer. + std::vector Buffer; + Buffer.reserve(256*1024); + + EmitASTBitcodeBuffer(TU,Buffer); + + // Write the bits to disk. + if (FILE* fp = fopen(FName.c_str(),"wb")) { + fwrite((char*)&Buffer.front(), sizeof(char), Buffer.size(), fp); + fclose(fp); + } } }; @@ -1016,7 +1027,19 @@ public: sprintf(&buf[0], "%s-%llX.ast", FE->getName(), (unsigned long long) FE->getInode()); FName.appendComponent(&buf[0]); - EmitASTBitcodeFile(&TU, FName); + + + // Reserve 256K for bitstream buffer. + std::vector Buffer; + Buffer.reserve(256*1024); + + EmitASTBitcodeBuffer(TU,Buffer); + + // Write the bits to disk. + if (FILE* fp = fopen(FName.c_str(),"wb")) { + fwrite((char*)&Buffer.front(), sizeof(char), Buffer.size(), fp); + fclose(fp); + } // Now emit the sources. diff --git a/tools/clang-cc/SerializationTest.cpp b/tools/clang-cc/SerializationTest.cpp index fcc047e015..aa3163f556 100644 --- a/tools/clang-cc/SerializationTest.cpp +++ b/tools/clang-cc/SerializationTest.cpp @@ -74,7 +74,21 @@ bool SerializationTest::Serialize(llvm::sys::Path& Filename, } // Serialize the translation unit. - return EmitASTBitcodeFile(TU,Filename); + + // Reserve 256K for bitstream buffer. + std::vector Buffer; + Buffer.reserve(256*1024); + + EmitASTBitcodeBuffer(TU,Buffer); + + // Write the bits to disk. + if (FILE* fp = fopen(Filename.c_str(),"wb")) { + fwrite((char*)&Buffer.front(), sizeof(char), Buffer.size(), fp); + fclose(fp); + return true; + } + + return false; } bool SerializationTest::Deserialize(llvm::sys::Path& Filename, -- 2.40.0