[llvm] r234973 - uselistorder: Remove the global bits

Duncan P. N. Exon Smith dexonsmith at apple.com
Tue Apr 14 20:25:17 PDT 2015


> On 2015-Apr-14, at 20:22, David Blaikie <dblaikie at gmail.com> wrote:
> 
> On Tue, Apr 14, 2015 at 8:14 PM, Duncan P. N. Exon Smith
> <dexonsmith at apple.com> wrote:
>> Author: dexonsmith
>> Date: Tue Apr 14 22:14:06 2015
>> New Revision: 234973
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=234973&view=rev
>> Log:
>> uselistorder: Remove the global bits
>> 
>> Remove all the global bits to do with preserving use-list order by
>> moving the `cl::opt`s to the individual tools that want them.
> 
> Awesome!
> 
>> There's a
>> minor functionality change to `libLTO`, in that you can't send in
>> `-preserve-bc-uselistorder=false`, but making that bit settable (if it's
>> worth doing) should be through explicit LTO API.
> 
> So the default in libLTO is to preserve? Shouldn't it be the old
> non-preserving behavior? (sorry, perhaps I'm missing something with
> all this - don't know which users we have, etc)

IMO, bitcode output of LTO is debug output.  (But let's keep this
conversation in the other thread.)

> 
>> As a drive-by fix, I removed some includes of `UseListOrder.h` that were
>> made unnecessary by recent commits.
>> 
>> Removed:
>>    llvm/trunk/lib/IR/UseListOrder.cpp
>> Modified:
>>    llvm/trunk/include/llvm/IR/UseListOrder.h
>>    llvm/trunk/lib/Bitcode/Writer/BitcodeWriterPass.cpp
>>    llvm/trunk/lib/IR/CMakeLists.txt
>>    llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
>>    llvm/trunk/tools/bugpoint/OptimizerDriver.cpp
>>    llvm/trunk/tools/bugpoint/bugpoint.cpp
>>    llvm/trunk/tools/llvm-as/llvm-as.cpp
>>    llvm/trunk/tools/llvm-dis/llvm-dis.cpp
>>    llvm/trunk/tools/llvm-extract/llvm-extract.cpp
>>    llvm/trunk/tools/llvm-link/llvm-link.cpp
>>    llvm/trunk/tools/opt/opt.cpp
>> 
>> Modified: llvm/trunk/include/llvm/IR/UseListOrder.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/UseListOrder.h?rev=234973&r1=234972&r2=234973&view=diff
>> ==============================================================================
>> --- llvm/trunk/include/llvm/IR/UseListOrder.h (original)
>> +++ llvm/trunk/include/llvm/IR/UseListOrder.h Tue Apr 14 22:14:06 2015
>> @@ -51,12 +51,6 @@ private:
>> 
>> typedef std::vector<UseListOrder> UseListOrderStack;
>> 
>> -/// \brief Whether to preserve use-list ordering.
>> -bool shouldPreserveBitcodeUseListOrder();
>> -bool shouldPreserveAssemblyUseListOrder();
>> -void setPreserveBitcodeUseListOrder(bool ShouldPreserve);
>> -void setPreserveAssemblyUseListOrder(bool ShouldPreserve);
>> -
>> } // end namespace llvm
>> 
>> #endif
>> 
>> Modified: llvm/trunk/lib/Bitcode/Writer/BitcodeWriterPass.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Writer/BitcodeWriterPass.cpp?rev=234973&r1=234972&r2=234973&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Bitcode/Writer/BitcodeWriterPass.cpp (original)
>> +++ llvm/trunk/lib/Bitcode/Writer/BitcodeWriterPass.cpp Tue Apr 14 22:14:06 2015
>> @@ -15,7 +15,6 @@
>> #include "llvm/Bitcode/ReaderWriter.h"
>> #include "llvm/IR/Module.h"
>> #include "llvm/IR/PassManager.h"
>> -#include "llvm/IR/UseListOrder.h"
>> #include "llvm/Pass.h"
>> using namespace llvm;
>> 
>> 
>> Modified: llvm/trunk/lib/IR/CMakeLists.txt
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/CMakeLists.txt?rev=234973&r1=234972&r2=234973&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/IR/CMakeLists.txt (original)
>> +++ llvm/trunk/lib/IR/CMakeLists.txt Tue Apr 14 22:14:06 2015
>> @@ -41,7 +41,6 @@ add_llvm_library(LLVMCore
>>   Type.cpp
>>   TypeFinder.cpp
>>   Use.cpp
>> -  UseListOrder.cpp
>>   User.cpp
>>   Value.cpp
>>   ValueSymbolTable.cpp
>> 
>> Removed: llvm/trunk/lib/IR/UseListOrder.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/UseListOrder.cpp?rev=234972&view=auto
>> ==============================================================================
>> --- llvm/trunk/lib/IR/UseListOrder.cpp (original)
>> +++ llvm/trunk/lib/IR/UseListOrder.cpp (removed)
>> @@ -1,43 +0,0 @@
>> -//===- UseListOrder.cpp - Implement Use List Order ------------------------===//
>> -//
>> -//                     The LLVM Compiler Infrastructure
>> -//
>> -// This file is distributed under the University of Illinois Open Source
>> -// License. See LICENSE.TXT for details.
>> -//
>> -//===----------------------------------------------------------------------===//
>> -//
>> -// Implement structures and command-line options for preserving use-list order.
>> -//
>> -//===----------------------------------------------------------------------===//
>> -
>> -#include "llvm/IR/UseListOrder.h"
>> -#include "llvm/Support/CommandLine.h"
>> -
>> -using namespace llvm;
>> -
>> -static cl::opt<bool> PreserveBitcodeUseListOrder(
>> -    "preserve-bc-uselistorder",
>> -    cl::desc("Preserve use-list order when writing LLVM bitcode."),
>> -    cl::init(false), cl::Hidden);
>> -
>> -static cl::opt<bool> PreserveAssemblyUseListOrder(
>> -    "preserve-ll-uselistorder",
>> -    cl::desc("Preserve use-list order when writing LLVM assembly."),
>> -    cl::init(false), cl::Hidden);
>> -
>> -bool llvm::shouldPreserveBitcodeUseListOrder() {
>> -  return PreserveBitcodeUseListOrder;
>> -}
>> -
>> -bool llvm::shouldPreserveAssemblyUseListOrder() {
>> -  return PreserveAssemblyUseListOrder;
>> -}
>> -
>> -void llvm::setPreserveBitcodeUseListOrder(bool ShouldPreserve) {
>> -  PreserveBitcodeUseListOrder = ShouldPreserve;
>> -}
>> -
>> -void llvm::setPreserveAssemblyUseListOrder(bool ShouldPreserve) {
>> -  PreserveAssemblyUseListOrder = ShouldPreserve;
>> -}
>> 
>> Modified: llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOCodeGenerator.cpp?rev=234973&r1=234972&r2=234973&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/LTO/LTOCodeGenerator.cpp (original)
>> +++ llvm/trunk/lib/LTO/LTOCodeGenerator.cpp Tue Apr 14 22:14:06 2015
>> @@ -29,7 +29,6 @@
>> #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"
>> @@ -216,7 +215,7 @@ bool LTOCodeGenerator::writeMergedModule
>> 
>>   // write bitcode to it
>>   WriteBitcodeToFile(IRLinker.getModule(), Out.os(),
>> -                     shouldPreserveBitcodeUseListOrder());
>> +                     /* ShouldPreserveUseListOrder */ true);
>>   Out.os().close();
>> 
>>   if (Out.os().has_error()) {
>> @@ -606,10 +605,6 @@ void LTOCodeGenerator::setCodeGenDebugOp
>> }
>> 
>> 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(),
>> 
>> Modified: llvm/trunk/tools/bugpoint/OptimizerDriver.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/OptimizerDriver.cpp?rev=234973&r1=234972&r2=234973&view=diff
>> ==============================================================================
>> --- llvm/trunk/tools/bugpoint/OptimizerDriver.cpp (original)
>> +++ llvm/trunk/tools/bugpoint/OptimizerDriver.cpp Tue Apr 14 22:14:06 2015
>> @@ -20,7 +20,6 @@
>> #include "llvm/IR/DataLayout.h"
>> #include "llvm/IR/LegacyPassManager.h"
>> #include "llvm/IR/Module.h"
>> -#include "llvm/IR/UseListOrder.h"
>> #include "llvm/IR/Verifier.h"
>> #include "llvm/Support/CommandLine.h"
>> #include "llvm/Support/Debug.h"
>> @@ -43,6 +42,11 @@ namespace llvm {
>>   extern cl::opt<std::string> OutputPrefix;
>> }
>> 
>> +static cl::opt<bool> PreserveBitcodeUseListOrder(
>> +    "preserve-bc-uselistorder",
>> +    cl::desc("Preserve use-list order when writing LLVM bitcode."),
>> +    cl::init(true), cl::Hidden);
>> +
>> namespace {
>>   // ChildOutput - This option captures the name of the child output file that
>>   // is set up by the parent bugpoint process
>> @@ -56,7 +60,7 @@ namespace {
>> /// file.  If an error occurs, true is returned.
>> ///
>> static bool writeProgramToFileAux(tool_output_file &Out, const Module *M) {
>> -  WriteBitcodeToFile(M, Out.os(), shouldPreserveBitcodeUseListOrder());
>> +  WriteBitcodeToFile(M, Out.os(), PreserveBitcodeUseListOrder);
>>   Out.os().close();
>>   if (!Out.os().has_error()) {
>>     Out.keep();
>> @@ -152,7 +156,7 @@ bool BugDriver::runPasses(Module *Progra
>> 
>>   tool_output_file InFile(InputFilename, InputFD);
>> 
>> -  WriteBitcodeToFile(Program, InFile.os(), shouldPreserveBitcodeUseListOrder());
>> +  WriteBitcodeToFile(Program, InFile.os(), PreserveBitcodeUseListOrder);
>>   InFile.os().close();
>>   if (InFile.os().has_error()) {
>>     errs() << "Error writing bitcode file: " << InputFilename << "\n";
>> 
>> Modified: llvm/trunk/tools/bugpoint/bugpoint.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/bugpoint.cpp?rev=234973&r1=234972&r2=234973&view=diff
>> ==============================================================================
>> --- llvm/trunk/tools/bugpoint/bugpoint.cpp (original)
>> +++ llvm/trunk/tools/bugpoint/bugpoint.cpp Tue Apr 14 22:14:06 2015
>> @@ -18,7 +18,6 @@
>> #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"
>> @@ -137,10 +136,6 @@ 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"
>> 
>> Modified: llvm/trunk/tools/llvm-as/llvm-as.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-as/llvm-as.cpp?rev=234973&r1=234972&r2=234973&view=diff
>> ==============================================================================
>> --- llvm/trunk/tools/llvm-as/llvm-as.cpp (original)
>> +++ llvm/trunk/tools/llvm-as/llvm-as.cpp Tue Apr 14 22:14:06 2015
>> @@ -19,7 +19,6 @@
>> #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"
>> @@ -52,6 +51,11 @@ static cl::opt<bool>
>> DisableVerify("disable-verify", cl::Hidden,
>>               cl::desc("Do not run verifier on input LLVM (dangerous!)"));
>> 
>> +static cl::opt<bool> PreserveBitcodeUseListOrder(
>> +    "preserve-bc-uselistorder",
>> +    cl::desc("Preserve use-list order when writing LLVM bitcode."),
>> +    cl::init(true), cl::Hidden);
>> +
>> static void WriteOutputFile(const Module *M) {
>>   // Infer the output filename if needed.
>>   if (OutputFilename.empty()) {
>> @@ -79,7 +83,7 @@ static void WriteOutputFile(const Module
>>   }
>> 
>>   if (Force || !CheckBitcodeOutputToConsole(Out->os(), true))
>> -    WriteBitcodeToFile(M, Out->os(), shouldPreserveBitcodeUseListOrder());
>> +    WriteBitcodeToFile(M, Out->os(), PreserveBitcodeUseListOrder);
>> 
>>   // Declare success.
>>   Out->keep();
>> @@ -91,11 +95,6 @@ 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...
>> 
>> Modified: llvm/trunk/tools/llvm-dis/llvm-dis.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-dis/llvm-dis.cpp?rev=234973&r1=234972&r2=234973&view=diff
>> ==============================================================================
>> --- llvm/trunk/tools/llvm-dis/llvm-dis.cpp (original)
>> +++ llvm/trunk/tools/llvm-dis/llvm-dis.cpp Tue Apr 14 22:14:06 2015
>> @@ -25,7 +25,6 @@
>> #include "llvm/IR/IntrinsicInst.h"
>> #include "llvm/IR/Module.h"
>> #include "llvm/IR/Type.h"
>> -#include "llvm/IR/UseListOrder.h"
>> #include "llvm/Support/CommandLine.h"
>> #include "llvm/Support/DataStream.h"
>> #include "llvm/Support/FileSystem.h"
>> @@ -55,6 +54,11 @@ static cl::opt<bool>
>> ShowAnnotations("show-annotations",
>>                 cl::desc("Add informational comments to the .ll file"));
>> 
>> +static cl::opt<bool> PreserveAssemblyUseListOrder(
>> +    "preserve-ll-uselistorder",
>> +    cl::desc("Preserve use-list order when writing LLVM assembly."),
>> +    cl::init(false), cl::Hidden);
>> +
>> namespace {
>> 
>> static void printDebugLoc(const DebugLoc &DL, formatted_raw_ostream &OS) {
>> @@ -190,7 +194,7 @@ int main(int argc, char **argv) {
>> 
>>   // All that llvm-dis does is write the assembly to a file.
>>   if (!DontPrint)
>> -    M->print(Out->os(), Annotator.get(), shouldPreserveAssemblyUseListOrder());
>> +    M->print(Out->os(), Annotator.get(), PreserveAssemblyUseListOrder);
>> 
>>   // Declare success.
>>   Out->keep();
>> 
>> Modified: llvm/trunk/tools/llvm-extract/llvm-extract.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-extract/llvm-extract.cpp?rev=234973&r1=234972&r2=234973&view=diff
>> ==============================================================================
>> --- llvm/trunk/tools/llvm-extract/llvm-extract.cpp (original)
>> +++ llvm/trunk/tools/llvm-extract/llvm-extract.cpp Tue Apr 14 22:14:06 2015
>> @@ -19,7 +19,6 @@
>> #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"
>> @@ -91,6 +90,16 @@ static cl::opt<bool>
>> OutputAssembly("S",
>>                cl::desc("Write output as LLVM assembly"), cl::Hidden);
>> 
>> +static cl::opt<bool> PreserveBitcodeUseListOrder(
>> +    "preserve-bc-uselistorder",
>> +    cl::desc("Preserve use-list order when writing LLVM bitcode."),
>> +    cl::init(true), cl::Hidden);
>> +
>> +static cl::opt<bool> PreserveAssemblyUseListOrder(
>> +    "preserve-ll-uselistorder",
>> +    cl::desc("Preserve use-list order when writing LLVM assembly."),
>> +    cl::init(false), cl::Hidden);
>> +
>> int main(int argc, char **argv) {
>>   // Print a stack trace if we signal out.
>>   sys::PrintStackTraceOnErrorSignal();
>> @@ -98,11 +107,6 @@ 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.
>> @@ -270,11 +274,10 @@ int main(int argc, char **argv) {
>>   }
>> 
>>   if (OutputAssembly)
>> -    Passes.add(createPrintModulePass(Out.os(), "",
>> -                                     shouldPreserveAssemblyUseListOrder()));
>> -  else if (Force || !CheckBitcodeOutputToConsole(Out.os(), true))
>>     Passes.add(
>> -        createBitcodeWriterPass(Out.os(), shouldPreserveBitcodeUseListOrder()));
>> +        createPrintModulePass(Out.os(), "", PreserveAssemblyUseListOrder));
>> +  else if (Force || !CheckBitcodeOutputToConsole(Out.os(), true))
>> +    Passes.add(createBitcodeWriterPass(Out.os(), PreserveBitcodeUseListOrder));
>> 
>>   Passes.run(*M.get());
>> 
>> 
>> Modified: llvm/trunk/tools/llvm-link/llvm-link.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-link/llvm-link.cpp?rev=234973&r1=234972&r2=234973&view=diff
>> ==============================================================================
>> --- llvm/trunk/tools/llvm-link/llvm-link.cpp (original)
>> +++ llvm/trunk/tools/llvm-link/llvm-link.cpp Tue Apr 14 22:14:06 2015
>> @@ -20,7 +20,6 @@
>> #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"
>> @@ -60,6 +59,16 @@ static cl::opt<bool>
>> SuppressWarnings("suppress-warnings", cl::desc("Suppress all linking warnings"),
>>                  cl::init(false));
>> 
>> +static cl::opt<bool> PreserveBitcodeUseListOrder(
>> +    "preserve-bc-uselistorder",
>> +    cl::desc("Preserve use-list order when writing LLVM bitcode."),
>> +    cl::init(true), cl::Hidden);
>> +
>> +static cl::opt<bool> 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...
>> //
>> @@ -105,11 +114,6 @@ 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<Module>("llvm-link", Context);
>> @@ -150,10 +154,9 @@ int main(int argc, char **argv) {
>> 
>>   if (Verbose) errs() << "Writing bitcode...\n";
>>   if (OutputAssembly) {
>> -    Composite->print(Out.os(), nullptr, shouldPreserveAssemblyUseListOrder());
>> +    Composite->print(Out.os(), nullptr, PreserveAssemblyUseListOrder);
>>   } else if (Force || !CheckBitcodeOutputToConsole(Out.os(), true))
>> -    WriteBitcodeToFile(Composite.get(), Out.os(),
>> -                       shouldPreserveBitcodeUseListOrder());
>> +    WriteBitcodeToFile(Composite.get(), Out.os(), PreserveBitcodeUseListOrder);
>> 
>>   // Declare success.
>>   Out.keep();
>> 
>> Modified: llvm/trunk/tools/opt/opt.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/opt.cpp?rev=234973&r1=234972&r2=234973&view=diff
>> ==============================================================================
>> --- llvm/trunk/tools/opt/opt.cpp (original)
>> +++ llvm/trunk/tools/opt/opt.cpp Tue Apr 14 22:14:06 2015
>> @@ -30,7 +30,6 @@
>> #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"
>> @@ -181,7 +180,15 @@ DefaultDataLayout("default-data-layout",
>>           cl::desc("data layout string to use if not specified by module"),
>>           cl::value_desc("layout-string"), cl::init(""));
>> 
>> -
>> +static cl::opt<bool> PreserveBitcodeUseListOrder(
>> +    "preserve-bc-uselistorder",
>> +    cl::desc("Preserve use-list order when writing LLVM bitcode."),
>> +    cl::init(true), cl::Hidden);
>> +
>> +static cl::opt<bool> PreserveAssemblyUseListOrder(
>> +    "preserve-ll-uselistorder",
>> +    cl::desc("Preserve use-list order when writing LLVM assembly."),
>> +    cl::init(false), cl::Hidden);
>> 
>> static inline void addPass(legacy::PassManagerBase &PM, Pass *P) {
>>   // Add the pass to the pass manager...
>> @@ -345,10 +352,6 @@ 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");
>> 
>> @@ -431,9 +434,8 @@ int main(int argc, char **argv) {
>>     // string. Hand off the rest of the functionality to the new code for that
>>     // layer.
>>     return runPassPipeline(argv[0], Context, *M, TM.get(), Out.get(),
>> -                           PassPipeline, OK, VK,
>> -                           shouldPreserveAssemblyUseListOrder(),
>> -                           shouldPreserveBitcodeUseListOrder())
>> +                           PassPipeline, OK, VK, PreserveAssemblyUseListOrder,
>> +                           PreserveBitcodeUseListOrder)
>>                ? 0
>>                : 1;
>>   }
>> @@ -557,8 +559,8 @@ int main(int argc, char **argv) {
>>     }
>> 
>>     if (PrintEachXForm)
>> -      Passes.add(createPrintModulePass(errs(), "",
>> -                                       shouldPreserveAssemblyUseListOrder()));
>> +      Passes.add(
>> +          createPrintModulePass(errs(), "", PreserveAssemblyUseListOrder));
>>   }
>> 
>>   if (StandardLinkOpts) {
>> @@ -595,11 +597,11 @@ int main(int argc, char **argv) {
>>   // Write bitcode or assembly to the output as the last step...
>>   if (!NoOutput && !AnalyzeOnly) {
>>     if (OutputAssembly)
>> -      Passes.add(createPrintModulePass(Out->os(), "",
>> -                                       shouldPreserveAssemblyUseListOrder()));
>> +      Passes.add(
>> +          createPrintModulePass(Out->os(), "", PreserveAssemblyUseListOrder));
>>     else
>> -      Passes.add(createBitcodeWriterPass(Out->os(),
>> -                                         shouldPreserveBitcodeUseListOrder()));
>> +      Passes.add(
>> +          createBitcodeWriterPass(Out->os(), PreserveBitcodeUseListOrder));
>>   }
>> 
>>   // Before executing passes, print the final values of the LLVM options.
>> 
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list