adapted from llvm-dis.cpp
| 528 | |
| 529 | // adapted from llvm-dis.cpp |
| 530 | std::unique_ptr<llvm::Module> openInputFile(llvm::LLVMContext &Context, |
| 531 | const string &InputFilename) { |
| 532 | auto MB = |
| 533 | ExitOnErr(errorOrToExpected(llvm::MemoryBuffer::getFile(InputFilename))); |
| 534 | llvm::SMDiagnostic Diag; |
| 535 | auto M = getLazyIRModule(std::move(MB), Diag, Context, |
| 536 | /*ShouldLazyLoadMetadata=*/true); |
| 537 | if (!M) { |
| 538 | Diag.print("", llvm::errs(), false); |
| 539 | return 0; |
| 540 | } |
| 541 | ExitOnErr(M->materializeAll()); |
| 542 | return M; |
| 543 | } |
| 544 | |
| 545 | llvm::Function *findFunction(llvm::Module &M, const string &FName) { |
| 546 | auto F = M.getFunction(FName); |