Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Unified Diff: include/llvm/Support/IRReader.h

Issue 8393017: Bitcode streaming (Closed)
Patch Set: Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: include/llvm/Support/IRReader.h
diff --git a/include/llvm/Support/IRReader.h b/include/llvm/Support/IRReader.h
index 6d8a9b30ae1fd8bfee9f0c9b7f6bdceb765a2743..6f5bc3aa3e496a37e82bc4aa9e1d2661821ad470 100644
--- a/include/llvm/Support/IRReader.h
+++ b/include/llvm/Support/IRReader.h
@@ -21,6 +21,7 @@
#include "llvm/ADT/OwningPtr.h"
#include "llvm/Assembly/Parser.h"
+#include "llvm/Bitcode/BitcodeStream.h"
#include "llvm/Bitcode/ReaderWriter.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/SourceMgr.h"
@@ -69,6 +70,22 @@ namespace llvm {
return getLazyIRModule(File.take(), Err, Context);
}
+ // like lazy file module but does not read the whole file at the start;
jasonwkim 2011/10/25 21:34:12 Use /// for doxygen
(google.com) Derek Schuff 2011/10/25 22:23:22 Done.
+ // instead executes a callback to get more bytes as needed by the parser.
+ // The stream must contain bitcode.
+ inline Module *getLazyIRStreamModule(const std::string &Filename,
+ SMDiagnostic &Err,
+ LLVMContext &Context,
+ StreamChunkCallback cb) {
+ std::string ErrMsg;
+ Module *M = getLazyBitcodeStreamModule(Filename, cb, Context, &ErrMsg);
+ if (M == 0) {
+ Err = SMDiagnostic(Filename, SourceMgr::DK_Error, ErrMsg);
+ return 0;
+ }
+ return M;
+ }
+
/// If the given MemoryBuffer holds a bitcode image, return a Module
/// for it. Otherwise, attempt to parse it as LLVM Assembly and return
/// a Module for it. This function *always* takes ownership of the given

Powered by Google App Engine
This is Rietveld 408576698