summaryrefslogtreecommitdiffstats
path: root/llvm/tools
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2016-11-09 17:49:19 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2016-11-09 17:49:19 +0000
commit7f00d0a125b98a1c68b05e7b6be4e89f39bf8240 (patch)
treeb13eb173d29b968498f03be9eceaf03f58752d76 /llvm/tools
parent9934c54cca1bc94e02f58c3fe1209e72312c115b (diff)
downloadbcm5719-llvm-7f00d0a125b98a1c68b05e7b6be4e89f39bf8240.tar.gz
bcm5719-llvm-7f00d0a125b98a1c68b05e7b6be4e89f39bf8240.zip
Bitcode: Change the materializer interface to return llvm::Error.
Differential Revision: https://reviews.llvm.org/D26439 llvm-svn: 286382
Diffstat (limited to 'llvm/tools')
-rw-r--r--llvm/tools/lli/lli.cpp8
-rw-r--r--llvm/tools/llvm-dis/llvm-dis.cpp26
-rw-r--r--llvm/tools/llvm-extract/llvm-extract.cpp12
-rw-r--r--llvm/tools/llvm-link/llvm-link.cpp10
4 files changed, 28 insertions, 28 deletions
diff --git a/llvm/tools/lli/lli.cpp b/llvm/tools/lli/lli.cpp
index 6b6d0b7395a..7923e8fe42d 100644
--- a/llvm/tools/lli/lli.cpp
+++ b/llvm/tools/lli/lli.cpp
@@ -418,11 +418,9 @@ int main(int argc, char **argv, char * const *envp) {
// If not jitting lazily, load the whole bitcode file eagerly too.
if (NoLazyCompilation) {
- if (std::error_code EC = Mod->materializeAll()) {
- errs() << argv[0] << ": bitcode didn't read correctly.\n";
- errs() << "Reason: " << EC.message() << "\n";
- exit(1);
- }
+ ExitOnError ExitOnErr(std::string(argv[0]) +
+ ": bitcode didn't read correctly: ");
+ ExitOnErr(Mod->materializeAll());
}
std::string ErrorMsg;
diff --git a/llvm/tools/llvm-dis/llvm-dis.cpp b/llvm/tools/llvm-dis/llvm-dis.cpp
index c26b68d7abb..3377b4286f9 100644
--- a/llvm/tools/llvm-dis/llvm-dis.cpp
+++ b/llvm/tools/llvm-dis/llvm-dis.cpp
@@ -137,21 +137,19 @@ static void diagnosticHandler(const DiagnosticInfo &DI, void *Context) {
exit(1);
}
-static Expected<std::unique_ptr<Module>> openInputFile(LLVMContext &Context) {
- ErrorOr<std::unique_ptr<MemoryBuffer>> MBOrErr =
- MemoryBuffer::getFileOrSTDIN(InputFilename);
- if (!MBOrErr)
- return errorCodeToError(MBOrErr.getError());
- ErrorOr<std::unique_ptr<Module>> MOrErr =
- getOwningLazyBitcodeModule(std::move(*MBOrErr), Context,
- /*ShouldLazyLoadMetadata=*/true);
- if (!MOrErr)
- return errorCodeToError(MOrErr.getError());
+static ExitOnError ExitOnErr;
+
+static std::unique_ptr<Module> openInputFile(LLVMContext &Context) {
+ std::unique_ptr<MemoryBuffer> MB =
+ ExitOnErr(errorOrToExpected(MemoryBuffer::getFileOrSTDIN(InputFilename)));
+ std::unique_ptr<Module> M = ExitOnErr(errorOrToExpected(
+ getOwningLazyBitcodeModule(std::move(MB), Context,
+ /*ShouldLazyLoadMetadata=*/true)));
if (MaterializeMetadata)
- (*MOrErr)->materializeMetadata();
+ ExitOnErr(M->materializeMetadata());
else
- (*MOrErr)->materializeAll();
- return std::move(*MOrErr);
+ ExitOnErr(M->materializeAll());
+ return M;
}
int main(int argc, char **argv) {
@@ -159,6 +157,8 @@ int main(int argc, char **argv) {
sys::PrintStackTraceOnErrorSignal(argv[0]);
PrettyStackTraceProgram X(argc, argv);
+ ExitOnErr.setBanner(std::string(argv[0]) + ": error: ");
+
LLVMContext Context;
llvm_shutdown_obj Y; // Call llvm_shutdown() on exit.
diff --git a/llvm/tools/llvm-extract/llvm-extract.cpp b/llvm/tools/llvm-extract/llvm-extract.cpp
index 900c461ebd8..e576d0893bf 100644
--- a/llvm/tools/llvm-extract/llvm-extract.cpp
+++ b/llvm/tools/llvm-extract/llvm-extract.cpp
@@ -22,6 +22,7 @@
#include "llvm/IRReader/IRReader.h"
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Error.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/PrettyStackTrace.h"
@@ -222,12 +223,9 @@ int main(int argc, char **argv) {
}
}
- auto Materialize = [&](GlobalValue &GV) {
- if (std::error_code EC = GV.materialize()) {
- errs() << argv[0] << ": error reading input: " << EC.message() << "\n";
- exit(1);
- }
- };
+ ExitOnError ExitOnErr(std::string(argv[0]) + ": error reading input: ");
+
+ auto Materialize = [&](GlobalValue &GV) { ExitOnErr(GV.materialize()); };
// Materialize requisite global values.
if (!DeleteFn) {
@@ -251,7 +249,7 @@ int main(int argc, char **argv) {
// Now that we have all the GVs we want, mark the module as fully
// materialized.
// FIXME: should the GVExtractionPass handle this?
- M->materializeAll();
+ ExitOnErr(M->materializeAll());
}
// In addition to deleting all other functions, we also want to spiff it
diff --git a/llvm/tools/llvm-link/llvm-link.cpp b/llvm/tools/llvm-link/llvm-link.cpp
index 08682205a0d..91e6008d532 100644
--- a/llvm/tools/llvm-link/llvm-link.cpp
+++ b/llvm/tools/llvm-link/llvm-link.cpp
@@ -108,6 +108,8 @@ static cl::opt<bool> PreserveAssemblyUseListOrder(
cl::desc("Preserve use-list order when writing LLVM assembly."),
cl::init(false), cl::Hidden);
+static ExitOnError ExitOnErr;
+
// Read the specified bitcode file in and return it. This routine searches the
// link path for the specified file to try to find it...
//
@@ -129,7 +131,7 @@ static std::unique_ptr<Module> loadFile(const char *argv0,
}
if (MaterializeMetadata) {
- Result->materializeMetadata();
+ ExitOnErr(Result->materializeMetadata());
UpgradeDebugInfo(*Result);
}
@@ -264,7 +266,7 @@ static bool importFunctions(const char *argv0, LLVMContext &Context,
auto &Entry = ModuleToGlobalsToImportMap[SrcModule.getModuleIdentifier()];
Entry.insert(F);
- F->materialize();
+ ExitOnErr(F->materialize());
}
// Do the actual import of globals now, one Module at a time
@@ -277,7 +279,7 @@ static bool importFunctions(const char *argv0, LLVMContext &Context,
// If modules were created with lazy metadata loading, materialize it
// now, before linking it (otherwise this will be a noop).
- SrcModule->materializeMetadata();
+ ExitOnErr(SrcModule->materializeMetadata());
UpgradeDebugInfo(*SrcModule);
// Linkage Promotion and renaming
@@ -348,6 +350,8 @@ int main(int argc, char **argv) {
sys::PrintStackTraceOnErrorSignal(argv[0]);
PrettyStackTraceProgram X(argc, argv);
+ ExitOnErr.setBanner(std::string(argv[0]) + ": ");
+
LLVMContext Context;
Context.setDiagnosticHandler(diagnosticHandlerWithContext, nullptr, true);
OpenPOWER on IntegriCloud