rust/src
Mazdak Farrokhzad 6c0a406b1c
Rollup merge of #62474 - nikic:update-llvm, r=alexcrichton
Prepare for LLVM 9 update

Main changes:

 * In preparation for opaque pointer types, the `byval` attribute now takes a type. As such, the argument type needs to be threaded through to the function/callsite attribute application logic.
 * On ARM the `+fp-only-sp` and `+d16` features have become `-fp64` and `-d32`. I've switched the target definitions to use the new names, but also added bidirectional emulation so either can be used on any LLVM version for backwards compatibility.
 * The datalayout can now specify function pointer alignment. In particular on ARM `Fi8` is specified, which means that function pointer alignment is independent of function alignment. I've added this to our datalayouts to match LLVM (which is something we check) and strip the fnptr alignment for older LLVM versions.
 * The fmul/fadd reductions now always respect the accumulator (including for unordered reductions), so we should pass the identity instead of undef.

Open issues:

 * https://reviews.llvm.org/D62106 causes linker errors with ld.bdf due to https://sourceware.org/bugzilla/show_bug.cgi?id=24784. To avoid this I've enabled `RelaxELFRelocations`, which results in a GOTPCRELX relocation for `__tls_get_addr` and avoids the issue. However, this is likely not acceptable because relax relocations are not supported by older linker versions. We may need an LLVM option to keep using PLT for `__tls_get_addr` despite `RtLibUseGOT`.

The corresponding llvm-project PR is https://github.com/rust-lang/llvm-project/pull/19.

r? @ghost
2019-07-10 05:14:10 +02:00
..
bootstrap Rollup merge of #62417 - alexreg:fix-self-in-type-alias, r=pnkfelix 2019-07-09 21:01:48 +02:00
build_helper Bump compiler-builtins to 0.1.15 2019-05-22 07:46:36 -07:00
ci cfg: linkcheck only on x86-64 linux 2019-07-06 11:05:22 -03:00
doc Rollup merge of #60458 - KodrAus:debug_map_entry, r=alexcrichton 2019-07-09 04:52:35 +02:00
etc Rollup merge of #62337 - Mark-Simulacrum:fix-cpu-usage-script, r=alexcrichton 2019-07-04 01:38:59 +02:00
grammar
liballoc Rollup merge of #62403 - SimonSapin:concat, r=alexcrichton 2019-07-09 04:52:38 +02:00
libarena rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
libcore Rollup merge of #62278 - cuviper:iter-partition, r=alexcrichton 2019-07-10 05:14:06 +02:00
libfmt_macros rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
libgraphviz rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
libpanic_abort
libpanic_unwind Make use of ptr::null(_mut) instead of casting zero 2019-06-17 10:52:46 +00:00
libproc_macro Rollup merge of #62249 - czipperz:use-mem-take-instead-of-replace-default, r=dtolnay,Centril 2019-07-04 01:38:46 +02:00
libprofiler_builtins Ship profiler with windows-gnu 2019-05-23 13:32:30 +02:00
librustc Rollup merge of #61853 - EricRahm:use_warning, r=varkor 2019-07-10 05:14:04 +02:00
librustc_allocator rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_apfloat rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_asan
librustc_borrowck Auto merge of #62233 - matthewjasper:exit-arm-scopes, r=pnkfelix 2019-07-09 13:10:31 +00:00
librustc_codegen_llvm Rollup merge of #62474 - nikic:update-llvm, r=alexcrichton 2019-07-10 05:14:10 +02:00
librustc_codegen_ssa Rollup merge of #62474 - nikic:update-llvm, r=alexcrichton 2019-07-10 05:14:10 +02:00
librustc_codegen_utils normalize use of backticks for compiler messages in librustc_codegen 2019-07-08 00:54:38 +02:00
librustc_data_structures rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_driver Auto merge of #62233 - matthewjasper:exit-arm-scopes, r=pnkfelix 2019-07-09 13:10:31 +00:00
librustc_errors rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_fs_util rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_incremental rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_interface Remove unused dependencies 2019-07-09 00:17:42 +09:00
librustc_lint Rollup merge of #61883 - zackmdavis:non_ascii_idents_lint, r=Manishearth 2019-07-07 17:00:15 +02:00
librustc_llvm rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_lsan
librustc_macros Rollup merge of #61545 - flip1995:internal_lints, r=oli-obk 2019-07-05 20:26:51 +02:00
librustc_metadata rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_mir rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_msan
librustc_passes rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_plugin Rollup merge of #62042 - petrochenkov:macstab, r=matthewjasper 2019-07-07 17:00:17 +02:00
librustc_privacy rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_resolve Rollup merge of #62393 - petrochenkov:notto-disu, r=Mark-Simulacrum 2019-07-10 05:14:09 +02:00
librustc_save_analysis rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_target Rollup merge of #62474 - nikic:update-llvm, r=alexcrichton 2019-07-10 05:14:10 +02:00
librustc_traits rustc: Remove dylib crate type from most rustc crates 2019-07-07 03:23:00 +02:00
librustc_tsan
librustc_typeck Auto merge of #62542 - Centril:rollup-5mpb8tu, r=Centril 2019-07-09 22:02:58 +00:00
librustdoc Rollup merge of #62470 - dima74:patch-1, r=GuillaumeGomez 2019-07-09 21:01:51 +02:00
libserialize Rollup merge of #62042 - petrochenkov:macstab, r=matthewjasper 2019-07-07 17:00:17 +02:00
libstd Rollup merge of #62403 - SimonSapin:concat, r=alexcrichton 2019-07-09 04:52:38 +02:00
libsyntax Rollup merge of #62393 - petrochenkov:notto-disu, r=Mark-Simulacrum 2019-07-10 05:14:09 +02:00
libsyntax_ext Rollup merge of #62042 - petrochenkov:macstab, r=matthewjasper 2019-07-07 17:00:17 +02:00
libsyntax_pos Resolve $crate in all hygienic contexts for pretty-pringing 2019-07-09 22:17:44 +03:00
libterm Remove use of mem::uninitialized in libterm crate 2019-07-06 03:27:05 +00:00
libtest Separate libtest module 2019-06-16 14:17:01 +03:00
libunwind Re-add bootstrap attribute to libunwind for llvm-libunwind feature 2019-07-07 15:45:04 -07:00
llvm-emscripten@7f23313edf
llvm-project@6c1a545b26 Update LLVM: apply patch necessary for ThinLTO on RISC-V 2019-07-07 15:32:09 +03:00
rtstartup
rustc
rustllvm Pass type to byval attributes 2019-07-09 21:55:29 +02:00
stdsimd@4bf456c35e
test Rollup merge of #62474 - nikic:update-llvm, r=alexcrichton 2019-07-10 05:14:10 +02:00
tools Add spastorino for rustc-guide toolstate 2019-07-09 13:58:32 -05:00
.gitignore
README.md
stage0.txt Switch master to 1.38 2019-07-04 11:26:57 -04:00

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.

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