[llvm] r234973 - uselistorder: Remove the global bits
David Blaikie
dblaikie at gmail.com
Tue Apr 14 20:29:43 PDT 2015
On Tue, Apr 14, 2015 at 8:25 PM, Duncan P. N. Exon Smith
<dexonsmith at apple.com> wrote:
>
>> 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.)
Sure, sorry, wasn't sure if these were the same bit of things.
>
>>
>>> 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