From c55dee1c2fc9241a6797ffadfbed765cb925deca Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Tue, 14 Apr 2015 18:33:00 +0000 Subject: [PATCH] IR: Set -preserve-bc-uselistorder=false by default But keep it on by default in `llvm-as`, `opt`, `bugpoint`, `llvm-link`, `llvm-extract`, and `LTOCodeGenerator`. Part of PR5680. llvm-svn: 234921 --- llvm/lib/IR/UseListOrder.cpp | 2 +- llvm/lib/LTO/LTOCodeGenerator.cpp | 5 +++++ llvm/tools/bugpoint/bugpoint.cpp | 5 +++++ llvm/tools/llvm-as/llvm-as.cpp | 6 ++++++ llvm/tools/llvm-extract/llvm-extract.cpp | 6 ++++++ llvm/tools/llvm-link/llvm-link.cpp | 6 ++++++ llvm/tools/opt/opt.cpp | 5 +++++ 7 files changed, 34 insertions(+), 1 deletion(-) diff --git a/llvm/lib/IR/UseListOrder.cpp b/llvm/lib/IR/UseListOrder.cpp index 801c71de5edb..2bc29f2b95c2 100644 --- a/llvm/lib/IR/UseListOrder.cpp +++ b/llvm/lib/IR/UseListOrder.cpp @@ -19,7 +19,7 @@ using namespace llvm; static cl::opt PreserveBitcodeUseListOrder( "preserve-bc-uselistorder", cl::desc("Preserve use-list order when writing LLVM bitcode."), - cl::init(true), cl::Hidden); + cl::init(false), cl::Hidden); static cl::opt PreserveAssemblyUseListOrder( "preserve-ll-uselistorder", diff --git a/llvm/lib/LTO/LTOCodeGenerator.cpp b/llvm/lib/LTO/LTOCodeGenerator.cpp index 2bcdc27e9658..345b22463889 100644 --- a/llvm/lib/LTO/LTOCodeGenerator.cpp +++ b/llvm/lib/LTO/LTOCodeGenerator.cpp @@ -29,6 +29,7 @@ #include "llvm/IR/LegacyPassManager.h" #include "llvm/IR/Mangler.h" #include "llvm/IR/Module.h" +#include "llvm/IR/UseListOrder.h" #include "llvm/IR/Verifier.h" #include "llvm/InitializePasses.h" #include "llvm/LTO/LTOModule.h" @@ -603,6 +604,10 @@ void LTOCodeGenerator::setCodeGenDebugOptions(const char *options) { } void LTOCodeGenerator::parseCodeGenDebugOptions() { + // Turn on -preserve-bc-uselistorder by default, but let the command-line + // override it. + setPreserveBitcodeUseListOrder(true); + // if options were requested, set them if (!CodegenOptions.empty()) cl::ParseCommandLineOptions(CodegenOptions.size(), diff --git a/llvm/tools/bugpoint/bugpoint.cpp b/llvm/tools/bugpoint/bugpoint.cpp index 0ee3784660ae..bb790675d751 100644 --- a/llvm/tools/bugpoint/bugpoint.cpp +++ b/llvm/tools/bugpoint/bugpoint.cpp @@ -18,6 +18,7 @@ #include "llvm/IR/LLVMContext.h" #include "llvm/IR/LegacyPassManager.h" #include "llvm/IR/LegacyPassNameParser.h" +#include "llvm/IR/UseListOrder.h" #include "llvm/LinkAllIR.h" #include "llvm/LinkAllPasses.h" #include "llvm/Support/CommandLine.h" @@ -136,6 +137,10 @@ int main(int argc, char **argv) { polly::initializePollyPasses(Registry); #endif + // Turn on -preserve-bc-uselistorder by default, but let the command-line + // override it. + setPreserveBitcodeUseListOrder(true); + cl::ParseCommandLineOptions(argc, argv, "LLVM automatic testcase reducer. See\nhttp://" "llvm.org/cmds/bugpoint.html" diff --git a/llvm/tools/llvm-as/llvm-as.cpp b/llvm/tools/llvm-as/llvm-as.cpp index 5ccf505923f2..ae8ca569fd49 100644 --- a/llvm/tools/llvm-as/llvm-as.cpp +++ b/llvm/tools/llvm-as/llvm-as.cpp @@ -19,6 +19,7 @@ #include "llvm/AsmParser/Parser.h" #include "llvm/Bitcode/ReaderWriter.h" #include "llvm/IR/Module.h" +#include "llvm/IR/UseListOrder.h" #include "llvm/IR/Verifier.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/FileSystem.h" @@ -90,6 +91,11 @@ int main(int argc, char **argv) { PrettyStackTraceProgram X(argc, argv); LLVMContext &Context = getGlobalContext(); llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. + + // Turn on -preserve-bc-uselistorder by default, but let the command-line + // override it. + setPreserveBitcodeUseListOrder(true); + cl::ParseCommandLineOptions(argc, argv, "llvm .ll -> .bc assembler\n"); // Parse the file now... diff --git a/llvm/tools/llvm-extract/llvm-extract.cpp b/llvm/tools/llvm-extract/llvm-extract.cpp index 8bfd3197fdcc..443ee653c8e7 100644 --- a/llvm/tools/llvm-extract/llvm-extract.cpp +++ b/llvm/tools/llvm-extract/llvm-extract.cpp @@ -19,6 +19,7 @@ #include "llvm/IR/IRPrintingPasses.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Module.h" +#include "llvm/IR/UseListOrder.h" #include "llvm/IRReader/IRReader.h" #include "llvm/IR/LegacyPassManager.h" #include "llvm/Support/CommandLine.h" @@ -97,6 +98,11 @@ int main(int argc, char **argv) { LLVMContext &Context = getGlobalContext(); llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. + + // Turn on -preserve-bc-uselistorder by default, but let the command-line + // override it. + setPreserveBitcodeUseListOrder(true); + cl::ParseCommandLineOptions(argc, argv, "llvm extractor\n"); // Use lazy loading, since we only care about selected global values. diff --git a/llvm/tools/llvm-link/llvm-link.cpp b/llvm/tools/llvm-link/llvm-link.cpp index 6924aa5cb2e6..5f1dccb378ad 100644 --- a/llvm/tools/llvm-link/llvm-link.cpp +++ b/llvm/tools/llvm-link/llvm-link.cpp @@ -20,6 +20,7 @@ #include "llvm/IR/DiagnosticPrinter.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Module.h" +#include "llvm/IR/UseListOrder.h" #include "llvm/IR/Verifier.h" #include "llvm/IRReader/IRReader.h" #include "llvm/Support/CommandLine.h" @@ -104,6 +105,11 @@ int main(int argc, char **argv) { LLVMContext &Context = getGlobalContext(); llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. + + // Turn on -preserve-bc-uselistorder by default, but let the command-line + // override it. + setPreserveBitcodeUseListOrder(true); + cl::ParseCommandLineOptions(argc, argv, "llvm linker\n"); auto Composite = make_unique("llvm-link", Context); diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp index af86e2dbd601..b0951a4887e3 100644 --- a/llvm/tools/opt/opt.cpp +++ b/llvm/tools/opt/opt.cpp @@ -30,6 +30,7 @@ #include "llvm/IR/LLVMContext.h" #include "llvm/IR/LegacyPassNameParser.h" #include "llvm/IR/Module.h" +#include "llvm/IR/UseListOrder.h" #include "llvm/IR/Verifier.h" #include "llvm/IRReader/IRReader.h" #include "llvm/InitializePasses.h" @@ -344,6 +345,10 @@ int main(int argc, char **argv) { polly::initializePollyPasses(Registry); #endif + // Turn on -preserve-bc-uselistorder by default, but let the command-line + // override it. + setPreserveBitcodeUseListOrder(true); + cl::ParseCommandLineOptions(argc, argv, "llvm .bc -> .bc modular optimizer and analysis printer\n");