llvm/tools
Duncan P. N. Exon Smith 0b29dea9f1 LTO: Add API to choose whether to embed uselists
Reverse libLTO's default behaviour for preserving use-list order in
bitcode, and add API for controlling it.  The default setting is now
`false` (don't preserve them), which is consistent with `clang`'s
default behaviour.

Users of libLTO should call `lto_codegen_should_embed_uselists(CG,true)`
prior to calling `lto_codegen_write_merged_modules()` whenever the
output file isn't part of the production workflow in order to reproduce
results with subsequent calls to `llc`.

(I haven't added tests since `llvm-lto` (the test tool for LTO) doesn't
support bitcode output, and even if it did: there isn't actually a good
way to test whether a tool has passed the flag.  If the order is already
"natural" (if the order will already round-trip) then no use-list
directives are emitted at all.  At some point I'll circle back to add
tests to `llvm-as` (etc.) that they actually respect the flag, at which
point I can somehow add a test here as well.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235943 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-27 23:38:54 +00:00
..
bugpoint bugpoint Enhancement. 2015-04-20 23:42:22 +00:00
bugpoint-passes bugpoint Enhancement. 2015-04-20 23:42:22 +00:00
dsymutil [AsmPrinter] Make AsmPrinter's OutStreamer member a unique_ptr. 2015-04-24 19:11:51 +00:00
gold Fix build error from r234957 2015-04-15 00:13:51 +00:00
llc Use raw_pwrite_stream in the object writer/streamer. 2015-04-14 22:14:34 +00:00
lli Remove the JITEmitDebugInfo TargetOptions as they're only set and 2015-04-19 03:20:51 +00:00
llvm-ar Purge unused includes throughout libSupport. 2015-03-23 18:07:13 +00:00
llvm-as uselistorder: Remove the global bits 2015-04-15 03:14:06 +00:00
llvm-bcanalyzer
llvm-c-test
llvm-config
llvm-cov llvm-cov: Require a subcommand when invoked as llvm-cov 2015-03-24 23:34:36 +00:00
llvm-cxxdump Change range-based for-loop to use const auto&. No functionality change. 2015-04-15 03:17:49 +00:00
llvm-diff
llvm-dis DebugInfo: Drop rest of DIDescriptor subclasses 2015-04-21 18:44:06 +00:00
llvm-dwarfdump Move DIContext.h to common DebugInfo location. 2015-04-23 17:37:47 +00:00
llvm-extract uselistorder: Remove the global bits 2015-04-15 03:14:06 +00:00
llvm-go
llvm-jitlistener llvm-jitlistener: Add missing include. 2015-03-25 17:12:36 +00:00
llvm-link Linker: Add flag to override linkage rules 2015-04-22 04:11:00 +00:00
llvm-lto libLTO, llvm-lto, gold: Introduce flag for controlling optimization level. 2015-03-19 22:01:00 +00:00
llvm-mc Add targets to cmake for specific target components. 2015-04-20 18:22:05 +00:00
llvm-mcmarkup
llvm-nm Cleanup else-after-return and add an early-return to llvm-nm 2015-03-23 21:17:43 +00:00
llvm-objdump Move DIContext.h to common DebugInfo location. 2015-04-23 17:37:47 +00:00
llvm-pdbdump [PDB] Support executables and source/line info. 2015-04-17 22:40:36 +00:00
llvm-profdata Purge unused includes throughout libSupport. 2015-03-23 18:07:13 +00:00
llvm-readobj Remove unused variable, found with gcc-5.1 -Wunused-variable. 2015-04-27 11:03:53 +00:00
llvm-rtdyld Move DIContext.h to common DebugInfo location. 2015-04-23 17:37:47 +00:00
llvm-shlib Updating symbol wildcards one more time. 2015-04-16 21:58:22 +00:00
llvm-size
llvm-stress Verifier: Remove the separate -verify-di pass 2015-03-19 22:24:17 +00:00
llvm-symbolizer [llvm-symbolizer] Link DebugInfoPDB for the autoconf build 2015-04-27 19:41:40 +00:00
lto LTO: Add API to choose whether to embed uselists 2015-04-27 23:38:54 +00:00
macho-dump
msbuild
obj2yaml
opt DebugInfo: Delete DIDescriptor (but not its subclasses) 2015-04-18 00:35:36 +00:00
verify-uselistorder uselistorder: Pull the assembly bit up out of the printer 2015-04-15 02:12:41 +00:00
yaml2obj Support arm32 R_ARM_V4BX relocation format 2015-04-22 15:26:43 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile