about summary refs log tree commit diff
path: root/src/llvm-project
AgeCommit message (Collapse)AuthorLines
2020-04-29Store LLVM bitcode in object files, not compressedAlex Crichton-0/+0
This commit is an attempted resurrection of #70458 where LLVM bitcode emitted by rustc into rlibs is stored into object file sections rather than in a separate file. The main rationale for doing this is that when rustc emits bitcode it will no longer use a custom compression scheme which makes it both easier to interoperate with existing tools and also cuts down on compile time since this compression isn't happening. The blocker for this in #70458 turned out to be that native linkers didn't handle the new sections well, causing the sections to either trigger bugs in the linker or actually end up in the final linked artifact. This commit attempts to address these issues by ensuring that native linkers ignore the new sections by inserting custom flags with module-level inline assembly. Note that this does not currently change the API of the compiler at all. The pre-existing `-C bitcode-in-rlib` flag is co-opted to indicate whether the bitcode should be present in the object file or not. Finally, note that an important consequence of this commit, which is also one of its primary purposes, is to enable rustc's `-Clto` bitcode loading to load rlibs produced with `-Clinker-plugin-lto`. The goal here is that when you're building with LTO Cargo will tell rustc to skip codegen of all intermediate crates and only generate LLVM IR. Today rustc will generate both object code and LLVM IR, but the object code is later simply thrown away, wastefully.
2020-04-07Update LLVM submodule fixing sanitizers build with glibc 2.31Tomasz Miąsko-0/+0
2020-04-03Make panic unwind the default for aarch64-*-windows-msvc targetsDaniel Frampton-0/+0
2020-03-30Fix #69841 by updating LLVM submodule. Includes regression test for issue 69841.Felix S. Klock II-0/+0
2020-03-29Update LLVM submoduleAmanieu d'Antras-0/+0
2020-02-26update llvm to silence gcc 9 warningsYI-0/+0
Closes https://github.com/rust-lang/rust/issues/69078
2020-02-24Cherry-pick the LLVM fix for #69225Josh Stone-0/+0
2020-01-27Fix LLVM assertion failure in MSP430 interrupt generation.William D. Jones-0/+0
2020-01-24New fixThomas Lively-0/+0
2020-01-21Update LLVMTyler Mandry-0/+0
Fixes #67855 (rust-lang/llvm-project#31) Fixes #66036 (rust-lang/llvm-project#32)
2020-01-08Rebase LLVM onto 9.0.1Josh Stone-0/+0
2020-01-01Update LLVMmsizanoen1-0/+0
2019-11-30Update LLVM submoduleMateusz Mikuła-0/+0
2019-11-15Update src/llvm-project to include rust-lang/llvm-project#27.Eduard-Mihai Burtescu-0/+0
2019-11-12Update llvm submoduleMateusz Mikuła-0/+0
2019-10-08Update LLVM for Emscripten exception handling supportThomas Lively-0/+0
Updates LLVM to pick up the cherry-picked support for correctly handling exception handling with aggregates passed by value. This will be necessary to continue to support Emscripten's exception handling once we switch using Emscripten's LLVM backend. See #63649.
2019-10-02Update llvm-project submoduleAlex Crichton-0/+0
Bring in rust-lang/llvm-project#24 which brings in some wasm improvements related to the bulk-memory proposal
2019-09-20Update to LLVM 9.0.0Josh Stone-0/+0
2019-09-09Update LLVM submoduleNikita Popov-0/+0
2019-08-09Update LLVM submoduleNikita Popov-0/+0
2019-08-05Update LLVM submoduleNikita Popov-0/+0
2019-07-25std: Use native `#[thread_local]` TLS on wasmAlex Crichton-0/+0
This commit moves `thread_local!` on WebAssembly targets to using the `#[thread_local]` attribute in LLVM. This was recently implemented upstream and is [in the process of being documented][dox]. This change only takes affect if modules are compiled with `+atomics` which is currently unstable and a pretty esoteric method of compiling wasm artifacts. This "new power" of the wasm toolchain means that the old `wasm-bindgen-threads` feature of the standard library can be removed since it should now be possible to create a fully functioning threaded wasm module without intrusively dealing with libstd symbols or intrinsics. Yay! [dox]: https://github.com/WebAssembly/tool-conventions/pull/116
2019-07-13Update LLVM submoduleNikita Popov-0/+0
2019-07-07Update LLVM: apply patch necessary for ThinLTO on RISC-VVadim Kaushan-0/+0
2019-07-01Update LLVM: apply patches for pc-relative addressing on 64-bit RISC-VVadim Kaushan-0/+0
2019-06-21Update LLVM to fix VS 2019 compilationJohn Kåre Alsaker-0/+0
2019-05-31Update LLVMvarkor-0/+0
2019-05-22Bump compiler-builtins to 0.1.15Alex Crichton-0/+0
This commit bumps the `compiler-builtins` dependency to 0.1.15 which expects to have the source for `compiler-rt` provided externally if the `c` feature is enabled. This then plumbs through the necessary support in the build system to ensure that if the `llvm-project` directory is checked out and present that we enable the `c` feature of `compiler-builtins` and compile in all the C intrinsics.
2019-05-20Fix MSP430 AsmPrinter and assembler syntax mismatch.William D. Jones-0/+0
2019-05-14Update LLVM to fix assertion when compiling to wasmAlex Crichton-0/+0
More details can be found in #60540! Closes #60540
2019-04-03Support using LLVM's libunwind as the unwinder implementationPetr Hosek-0/+0
This avoids the dependency on host libraries such as libgcc_s which may be undesirable in some deployment environments where these aren't available.
2019-03-18Rebase LLVM to 8.0.0 finalJosh Stone-0/+0
2019-03-01Add back in MSVC version check for LLVMAlex Crichton-0/+0
2019-02-26rustc: Update LLVM, remove dead wasm codeAlex Crichton-0/+0
This commit updates the LLVM branch to the rebased version of the upstream release/8.x branch. This includes a wasm patch which means that the `rewrite_imports` pass in rustc is no longer needed (yay!) and we can instead rely on `wasm-import-module`, an attribute we're already emitting, to take care of all the work.
2019-02-12Update LLVM: apply patches for RISC-V 64-bit supportVadim Kaushan-0/+0
2019-01-25[rust-lldb] Adapt to changes in LLDB APIsJosh Stone-0/+0
2019-01-25Update LLVM for a CodeView fixJosh Stone-0/+0
2019-01-25Add two more wasm-related LLVM commitsAlex Crichton-0/+0
2019-01-25Rebase to the llvm-project monorepoJosh Stone-0/+0
The new git submodule src/llvm-project is a monorepo replacing src/llvm and src/tools/{clang,lld,lldb}. This also serves as a rebase for these projects to the new 8.x branch from trunk. The src/llvm-emscripten fork is unchanged for now.