rust/src
bors 4a8b6f708c Auto merge of #82806 - nikic:memcpyopt-mssa, r=nagisa
Enable MemorySSA in MemCpyOpt

LLVM 12 ships with an implementation of MemCpyOpt which is based on MSSA instead of MDA. This implementation can eliminate memcpys across blocks, and as such fixes many (but not all) failures to eliminate redundant memcpys for Rust code. Unfortunately this was only enabled by default shortly after LLVM 12 was cut. This backports the enablement to our LLVM fork.

Perf results: https://perf.rust-lang.org/compare.html?start=8fd946c63a6c3aae9788bd459d278cb2efa77099&end=0628b91ce17035fb5b6a1a99a4f2ab9ab69be7a8

There are improvements on check and debug builds, which indicate that rustc itself has become faster. For opt builds this is, on average, a very minor improvement as well, although there is one significant outlier with deep-vector-opt. This benchmark creates ~140000 zero stores, which are now coalesced into a memset slightly later, resulting in longer compile-time for intermediate passes.
2021-03-11 18:14:59 +00:00
..
bootstrap Rollup merge of #82924 - sunfishcode:wasi-command, r=alexcrichton 2021-03-10 17:55:41 +01:00
build_helper
ci Auto merge of #82747 - JohnTitor:pin-es-check-version, r=Mark-Simulacrum 2021-03-04 19:24:21 +00:00
doc Auto merge of #76570 - cratelyn:implement-rfc-2945-c-unwind-abi, r=Amanieu 2021-03-10 16:44:04 +00:00
etc Rollup merge of #82557 - rylev:natvis-improvements, r=varkor 2021-03-08 13:13:20 +01:00
librustdoc Auto merge of #82947 - GuillaumeGomez:fix-nojs-style-issues, r=Nemo157 2021-03-11 09:08:57 +00:00
llvm-project@5f958e150d Enable MemorySSA-based MemCpyOpt 2021-03-11 14:28:47 +01:00
rustdoc-json-types x.py fmt 2021-03-06 15:50:29 -05:00
test Auto merge of #82947 - GuillaumeGomez:fix-nojs-style-issues, r=Nemo157 2021-03-11 09:08:57 +00:00
tools bump Miri 2021-03-11 09:29:12 +01:00
README.md update message 2021-02-14 10:08:37 +05:30
stage0.txt Update the bootstrap compiler 2021-02-20 17:19:30 -05:00
version bump nightly version to 1.52.0 2021-02-05 16:25:08 +01:00

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

  • The test suite
  • The bootstrapping build system
  • Various submodules for tools, like rustdoc, rls, etc.

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