From 2c3e0051c31c3f5b2328b447eadf1cf9c4427442 Mon Sep 17 00:00:00 2001 From: Pirama Arumuga Nainar Date: Wed, 6 May 2015 11:46:36 -0700 Subject: Update aosp/master LLVM for rebase to r235153 Change-Id: I9bf53792f9fc30570e81a8d80d296c681d005ea7 (cherry picked from commit 0c7f116bb6950ef819323d855415b2f2b0aad987) --- tools/llvm-link/llvm-link.cpp | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) (limited to 'tools/llvm-link') diff --git a/tools/llvm-link/llvm-link.cpp b/tools/llvm-link/llvm-link.cpp index e52191a..bcefc0b 100644 --- a/tools/llvm-link/llvm-link.cpp +++ b/tools/llvm-link/llvm-link.cpp @@ -15,6 +15,7 @@ #include "llvm/Linker/Linker.h" #include "llvm/ADT/STLExtras.h" #include "llvm/Bitcode/ReaderWriter.h" +#include "llvm/IR/AutoUpgrade.h" #include "llvm/IR/DiagnosticInfo.h" #include "llvm/IR/DiagnosticPrinter.h" #include "llvm/IR/LLVMContext.h" @@ -58,6 +59,16 @@ static cl::opt SuppressWarnings("suppress-warnings", cl::desc("Suppress all linking warnings"), cl::init(false)); +static cl::opt PreserveBitcodeUseListOrder( + "preserve-bc-uselistorder", + cl::desc("Preserve use-list order when writing LLVM bitcode."), + cl::init(true), cl::Hidden); + +static cl::opt PreserveAssemblyUseListOrder( + "preserve-ll-uselistorder", + cl::desc("Preserve use-list order when writing LLVM assembly."), + cl::init(false), cl::Hidden); + // Read the specified bitcode file in and return it. This routine searches the // link path for the specified file to try to find it... // @@ -69,6 +80,9 @@ loadFile(const char *argv0, const std::string &FN, LLVMContext &Context) { if (!Result) Err.print(argv0, errs()); + Result->materializeMetadata(); + UpgradeDebugInfo(*Result); + return Result; } @@ -112,9 +126,9 @@ int main(int argc, char **argv) { return 1; } - if (verifyModule(*M)) { - errs() << argv[0] << ": input module '" << InputFilenames[i] - << "' is broken!\n"; + if (verifyModule(*M, &errs())) { + errs() << argv[0] << ": " << InputFilenames[i] + << ": error: input module is broken!\n"; return 1; } @@ -133,16 +147,16 @@ int main(int argc, char **argv) { return 1; } - if (verifyModule(*Composite)) { - errs() << argv[0] << ": linked module is broken!\n"; + if (verifyModule(*Composite, &errs())) { + errs() << argv[0] << ": error: linked module is broken!\n"; return 1; } if (Verbose) errs() << "Writing bitcode...\n"; if (OutputAssembly) { - Out.os() << *Composite; + Composite->print(Out.os(), nullptr, PreserveAssemblyUseListOrder); } else if (Force || !CheckBitcodeOutputToConsole(Out.os(), true)) - WriteBitcodeToFile(Composite.get(), Out.os()); + WriteBitcodeToFile(Composite.get(), Out.os(), PreserveBitcodeUseListOrder); // Declare success. Out.keep(); -- cgit v1.1