[llvm] c8e56f3 - Add -disable-verify flag to llvm-link.
Nick Lewycky via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 12 02:55:43 PDT 2021
Author: Nick Lewycky
Date: 2021-03-30T09:55:25-07:00
New Revision: c8e56f394af0b9e32c413d62a0e7aebbba3e6b70
URL: https://github.com/llvm/llvm-project/commit/c8e56f394af0b9e32c413d62a0e7aebbba3e6b70
DIFF: https://github.com/llvm/llvm-project/commit/c8e56f394af0b9e32c413d62a0e7aebbba3e6b70.diff
LOG: Add -disable-verify flag to llvm-link.
This flag allows the developer to see the result of linking even if it fails the verifier, as a step in debugging cases where the linked module fails the verifier.
Differential Revision: https://reviews.llvm.org/D99382
Added:
Modified:
llvm/tools/llvm-link/llvm-link.cpp
Removed:
################################################################################
diff --git a/llvm/tools/llvm-link/llvm-link.cpp b/llvm/tools/llvm-link/llvm-link.cpp
index b01270de727a5..846532ec6df99 100644
--- a/llvm/tools/llvm-link/llvm-link.cpp
+++ b/llvm/tools/llvm-link/llvm-link.cpp
@@ -110,6 +110,9 @@ static cl::opt<bool> PreserveAssemblyUseListOrder(
cl::desc("Preserve use-list order when writing LLVM assembly."),
cl::init(false), cl::Hidden);
+static cl::opt<bool> NoVerify("disable-verify",
+ cl::desc("Do not run the verifier"), cl::Hidden);
+
static ExitOnError ExitOnErr;
// Read the specified bitcode file in and return it. This routine searches the
@@ -311,7 +314,7 @@ static bool importFunctions(const char *argv0, Module &DestModule) {
// Load the specified source module.
auto &SrcModule = ModuleLoaderCache(argv0, FileName);
- if (verifyModule(SrcModule, &errs())) {
+ if (!NoVerify && verifyModule(SrcModule, &errs())) {
errs() << argv0 << ": " << FileName;
WithColor::error() << "input module is broken!\n";
return false;
@@ -372,7 +375,7 @@ static bool linkFiles(const char *argv0, LLVMContext &Context, Linker &L,
// Note that when ODR merging types cannot verify input files in here When
// doing that debug metadata in the src module might already be pointing to
// the destination.
- if (DisableDITypeMap && verifyModule(*M, &errs())) {
+ if (DisableDITypeMap && !NoVerify && verifyModule(*M, &errs())) {
errs() << argv0 << ": " << File << ": ";
WithColor::error() << "input module is broken!\n";
return false;
@@ -471,7 +474,7 @@ int main(int argc, char **argv) {
return 1;
}
- if (verifyModule(*Composite, &errs())) {
+ if (!NoVerify && verifyModule(*Composite, &errs())) {
errs() << argv[0] << ": ";
WithColor::error() << "linked module is broken!\n";
return 1;
More information about the llvm-commits
mailing list