|
49 | 49 | #include "llvm/ADT/APInt.h" |
50 | 50 | #include "llvm/ADT/SmallVector.h" |
51 | 51 | #include "llvm/ADT/StringRef.h" |
52 | | -#include "llvm/Bitcode/BitcodeReader.h" |
53 | 52 | #include "llvm/Bitcode/BitcodeWriter.h" |
54 | 53 | #include "llvm/IR/LLVMContext.h" |
55 | 54 | #include "llvm/IR/Module.h" |
56 | 55 | #include "llvm/IR/Verifier.h" |
| 56 | +#include "llvm/IRReader/IRReader.h" |
57 | 57 | #include "llvm/Support/CommandLine.h" |
58 | 58 | #include "llvm/Support/Debug.h" |
59 | 59 | #include "llvm/Support/Error.h" |
|
62 | 62 | #include "llvm/Support/MemoryBuffer.h" |
63 | 63 | #include "llvm/Support/PrettyStackTrace.h" |
64 | 64 | #include "llvm/Support/Signals.h" |
| 65 | +#include "llvm/Support/SourceMgr.h" |
65 | 66 | #include "llvm/Support/ToolOutputFile.h" |
66 | 67 | #include "llvm/Support/raw_ostream.h" |
67 | 68 |
|
@@ -375,11 +376,14 @@ class StreambufToArray : public std::streambuf { |
375 | 376 | static int convertLLVMToSPIRV(const SPIRV::TranslatorOpts &Opts) { |
376 | 377 | LLVMContext Context; |
377 | 378 |
|
378 | | - std::unique_ptr<MemoryBuffer> MB = |
379 | | - ExitOnErr(errorOrToExpected(MemoryBuffer::getFileOrSTDIN(InputFile))); |
380 | | - std::unique_ptr<Module> M = |
381 | | - ExitOnErr(getOwningLazyBitcodeModule(std::move(MB), Context, |
382 | | - /*ShouldLazyLoadMetadata=*/true)); |
| 379 | + SMDiagnostic GetIRErr; |
| 380 | + std::unique_ptr<Module> M = getLazyIRFileModule( |
| 381 | + InputFile, GetIRErr, Context, /*ShouldLazyLoadMetadata=*/true); |
| 382 | + if (!M) { |
| 383 | + ExitOnErr( |
| 384 | + createStringError(inconvertibleErrorCode(), GetIRErr.getMessage())); |
| 385 | + } |
| 386 | + |
383 | 387 | ExitOnErr(M->materializeAll()); |
384 | 388 |
|
385 | 389 | if (OutputFile.empty()) { |
|
0 commit comments