rust/src
Nikita Popov a70ef4cb49 Set PrepareForThinLTO flag when using ThinLTO
The LLVM PassManager has a PrepareForThinLTO flag, which is intended
when compilation occurs in conjunction with linking by ThinLTO. The
flag has two effects:

 * The NameAnonGlobal pass is run after all other passes, which
   ensures that all globals have a name.
 * In optimized builds, a number of late passes (mainly related to
   vectorization and unrolling) are disabled, on the rationale that
   these a) will increase codesize of the intermediate artifacts
   and b) will be run by ThinLTO again anyway.

This patch enables the use of PrepareForThinLTO if Thin or ThinLocal
linking is used.

The background for this change is the CI failure in #49479, which
we assume to be caused by the NameAnonGlobal pass not being run.
As this changes which passes LLVM runs, this might have performance
(or other) impact, so we want to land this separately.
2018-05-12 14:07:20 +02:00
..
bootstrap Auto merge of #50105 - mixi:crt-included, r=alexcrichton 2018-05-11 19:46:16 +00:00
build_helper
ci Rollup merge of #50606 - kennytm:retry-docker-cache, r=alexcrichton 2018-05-10 11:35:38 -05:00
dlmalloc@c99638dc2e
doc Auto merge of #50390 - hdhoang:46205_deny_by_default, r=nikomatsakis 2018-05-08 04:56:01 +00:00
etc
grammar
jemalloc@1f5a28755e
liballoc Skip a memory-hungry test that OOMs 2018-05-10 14:11:17 -07:00
liballoc_jemalloc
liballoc_system
libarena
libbacktrace
libcompiler_builtins@2a2f6d96c8
libcore Rollup merge of #50588 - ExpHP:i-can-see-my-house-from-here, r=frewsxcv 2018-05-10 11:35:33 -05:00
libfmt_macros
libgraphviz
liblibc@a7e78a78e1
libpanic_abort
libpanic_unwind
libproc_macro Auto merge of #49823 - Zoxc:term-str, r=alexcrichton 2018-05-10 16:27:32 +00:00
libprofiler_builtins
librustc Auto merge of #50249 - Zoxc:allocation-const, r=oli-obk 2018-05-12 01:48:11 +00:00
librustc_allocator
librustc_apfloat
librustc_asan
librustc_borrowck
librustc_cratesio_shim
librustc_data_structures
librustc_driver Make DepGraph::previous_work_products immutable 2018-05-07 23:17:16 -04:00
librustc_errors
librustc_incremental Fix comment 2018-05-08 09:13:18 -04:00
librustc_lint Rename the 2018 edition lint names 2018-05-10 11:28:11 -07:00
librustc_llvm Set PrepareForThinLTO flag when using ThinLTO 2018-05-12 14:07:20 +02:00
librustc_lsan
librustc_metadata Rollup merge of #50538 - michaelwoerister:atomic-cnums, r=Zoxc 2018-05-10 11:35:24 -05:00
librustc_mir Add a query to convert from ConstValue to Allocation 2018-05-11 13:01:44 +02:00
librustc_msan
librustc_passes
librustc_platform_intrinsics
librustc_plugin
librustc_privacy
librustc_resolve
librustc_save_analysis
librustc_target Auto merge of #50105 - mixi:crt-included, r=alexcrichton 2018-05-11 19:46:16 +00:00
librustc_traits Store the GeneratorInterior in the new GeneratorSubsts 2018-05-08 16:21:58 +02:00
librustc_trans Set PrepareForThinLTO flag when using ThinLTO 2018-05-12 14:07:20 +02:00
librustc_trans_utils
librustc_tsan
librustc_typeck Auto merge of #50249 - Zoxc:allocation-const, r=oli-obk 2018-05-12 01:48:11 +00:00
librustdoc Introduce ConstValue and use it instead of miri's Value for constant values 2018-05-11 13:01:44 +02:00
libserialize
libstd Auto merge of #50611 - alexcrichton:rollup, r=alexcrichton 2018-05-10 23:33:13 +00:00
libstd_unicode
libsyntax Auto merge of #50620 - alexcrichton:change-names-again, r=nikomatsakis 2018-05-11 07:28:51 +00:00
libsyntax_ext
libsyntax_pos Inline Span methods. 2018-05-09 20:14:03 +10:00
libterm
libtest
libunwind
llvm@fd7dd99edf Pull in a wasm fix from LLVM upstream 2018-05-10 07:06:18 -07:00
llvm-emscripten@2717444753
rtstartup
rustc
rustllvm Set PrepareForThinLTO flag when using ThinLTO 2018-05-12 14:07:20 +02:00
stdsimd@2f86c75a24 Update the Cargo/stdsimd submodules 2018-05-08 08:20:47 -07:00
test Auto merge of #50249 - Zoxc:allocation-const, r=oli-obk 2018-05-12 01:48:11 +00:00
tools Auto merge of #50105 - mixi:crt-included, r=alexcrichton 2018-05-11 19:46:16 +00:00
Cargo.lock Update the clippy and miri submodules 2018-05-11 14:11:06 +02:00
Cargo.toml
README.md
stage0.txt

This directory contains the source code of the rust project, including:

  • rustc and its tests
  • libstd
  • Various submodules for tools, like rustdoc, rls, etc.

For more information on how various parts of the compiler work, see the rustc guide.

Their is also useful content in the following READMEs, which are gradually being moved over to the guide: