| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2019-02-25 | librustc_codegen_llvm: deny(elided_lifetimes_in_paths) | Mazdak Farrokhzad | -6/+10 | |
| 2019-02-20 | Allow Self::Module to be mutated. | Gabriela Alexandra Moldovan | -2/+2 | |
| `codegen_allocator` and `write_metadata` mutate the underlying LLVM module. As such, it makes sense for these two functions to receive a mutable reference to the module (as opposed to an immutable one). | ||||
| 2019-02-18 | librustc_codegen_llvm => 2018 | Taiki Endo | -7/+3 | |
| 2019-02-16 | Rollup merge of #58074 - scottmcm:stabilize-sort_by_cached_key, r=SimonSapin | kennytm | -1/+0 | |
| Stabilize slice_sort_by_cached_key I was going to ask on the tracking issue (https://github.com/rust-lang/rust/issues/34447), but decided to just send this and hope for an FCP here. The method was added last March by https://github.com/rust-lang/rust/pull/48639. Signature: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_by_cached_key ```rust impl [T] { pub fn sort_by_cached_key<K, F>(&mut self, f: F) where F: FnMut(&T) -> K, K: Ord; } ``` That's an identical signature to the existing `sort_by_key`, so I think the questions are just naming, implementation, and the usual "do we want this?". The implementation seems to have proven its use in rustc at least, which many uses: https://github.com/rust-lang/rust/search?l=Rust&q=sort_by_cached_key (I'm asking because it's exactly what I just needed the other day: ```rust all_positions.sort_by_cached_key(|&n| data::CITIES.iter() .map(|x| *metric_closure.get_edge(n, x.pos).unwrap()) .sum::<usize>() ); ``` since caching that key is a pretty obviously good idea.) Closes #34447 | ||||
| 2019-02-12 | Stabilize slice_sort_by_cached_key | Scott McMurray | -1/+0 | |
| 2019-02-12 | rustc: Implement incremental "fat" LTO | Alex Crichton | -5/+35 | |
| Currently the compiler will produce an error if both incremental compilation and full fat LTO is requested. With recent changes and the advent of incremental ThinLTO, however, all the hard work is already done for us and it's actually not too bad to remove this error! This commit updates the codegen backend to allow incremental full fat LTO. The semantics are that the input modules to LTO are all produce incrementally, but the final LTO step is always done unconditionally regardless of whether the inputs changed or not. The only real incremental win we could have here is if zero of the input modules changed, but that's so rare it's unlikely to be worthwhile to implement such a code path. cc #57968 cc rust-lang/cargo#6643 | ||||
| 2019-02-07 | Remove images' url to make it work even without internet connection | Guillaume Gomez | -3/+1 | |
| 2019-01-26 | Auto merge of #55641 - nagisa:optimize-attr, r=pnkfelix | bors | -8/+9 | |
| Implement optimize(size) and optimize(speed) attributes This PR implements both `optimize(size)` and `optimize(speed)` attributes. While the functionality itself works fine now, this PR is not yet complete: the code might be messy in places and, most importantly, the compiletest must be improved with functionality to run tests with custom optimization levels. Otherwise the new attribute cannot be tested properly. Oh, and not all of the RFC is implemented – attribute propagation is not implemented for example. # TODO * [x] Improve compiletest so that tests can be written; * [x] Assign a proper error number (E9999 currently, no idea how to allocate a number properly); * [ ] Perhaps reduce the duplication in LLVM attribute assignment code… | ||||
| 2019-01-24 | Implement optimize(size) and optimize(speed) | Simonas Kazlauskas | -8/+9 | |
| 2019-01-24 | Remove quote_*! macros and associated APIs | Mark Simulacrum | -1/+0 | |
| 2019-01-14 | rustc: Remove platform intrinsics crate | Alex Crichton | -1/+0 | |
| This was originally attempted in #57048 but it was realized that we could fully remove the crate via the `"unadjusted"` ABI on intrinsics. This means that all intrinsics in stdsimd are implemented directly against LLVM rather than using the abstraction layer provided here. That ends up meaning that this crate is no longer used at all. This crate developed long ago to implement the SIMD intrinsics, but we didn't end up using it in the long run. In that case let's remove it! | ||||
| 2018-12-25 | Remove licenses | Mark Rousskov | -10/+0 | |
| 2018-12-04 | Serialize modules into ThinBuffer after initial optimization | Nikita Popov | -1/+7 | |
| Instead of keeping all modules in memory until thin LTO and only serializing them then, serialize the module immediately after it finishes optimizing. | ||||
| 2018-12-04 | Remove unnecessary parts of run_fat_lto signature | Nikita Popov | -3/+2 | |
| Fat LTO merges into one module, so only return one module. | ||||
| 2018-12-04 | Separate out methods for running thin and fat LTO | Nikita Popov | -2/+10 | |
| 2018-11-26 | libcore: Add va_list lang item and intrinsics | Dan Robertson | -0/+1 | |
| - Add the llvm intrinsics used to manipulate a va_list. - Add the va_list lang item in order to allow implementing VaList in libcore. | ||||
| 2018-11-16 | [eddyb] rustc_codegen_ssa: rename `interfaces` to `traits`. | Eduard-Mihai Burtescu | -1/+1 | |
| 2018-11-16 | [eddyb] rustc_codegen_ssa: avoid a `Clone` bound on `TargetMachine`. | Eduard-Mihai Burtescu | -11/+0 | |
| 2018-11-16 | [eddyb] rustc_codegen_llvm: remove unnecessary `'a` from ↵ | Eduard-Mihai Burtescu | -3/+3 | |
| `LlvmCodegenBackend` impls. | ||||
| 2018-11-16 | Separating the back folder between backend-agnostic and LLVM-specific code | Denis Merigoux | -69/+96 | |
| 2018-11-16 | Added some docs + start to &mut self builder methods | Denis Merigoux | -1/+1 | |
| 2018-11-16 | Finished moving backend-agnostic code to rustc_codegen_ssa | Denis Merigoux | -13/+9 | |
| 2018-11-16 | Great separation of librustc_codegen_llvm: librustc_codegen_ssa compiles | Denis Merigoux | -27/+7 | |
| 2018-11-16 | Beginning of moving all backend-agnostic code to rustc_codegen_ssa | Denis Merigoux | -1/+2 | |
| 2018-11-16 | Moved Backend interface into rustc_codegen_utils | Denis Merigoux | -53/+1 | |
| 2018-11-16 | Added compile codegen to backend trait | Denis Merigoux | -13/+6 | |
| 2018-11-16 | Preparing the generalization of base:compile_coodegen_unit | Denis Merigoux | -3/+19 | |
| 2018-11-16 | Generalized base:codegen_crate | Denis Merigoux | -6/+61 | |
| 2018-11-16 | Removed phantomdata no longer necessary | Denis Merigoux | -9/+6 | |
| Because CodegenContext doesn't implement Backend anymore | ||||
| 2018-11-16 | Removing LLVM content from CommonMethods -> ConstMethods | Denis Merigoux | -30/+0 | |
| 2018-11-16 | Prefixed const methods with "const" instead of "c" | Denis Merigoux | -4/+4 | |
| 2018-11-16 | Added definition of type trait | Denis Merigoux | -0/+1 | |
| 2018-11-16 | Removed code duplication for CommonWriteMethods | Denis Merigoux | -17/+3 | |
| 2018-11-16 | CommonWriteMethods are not static any more | Denis Merigoux | -6/+52 | |
| 2018-11-16 | New files and folders for traits | Denis Merigoux | -1/+1 | |
| Moved common enums to common | ||||
| 2018-11-16 | Generalized base.rs#call_memcpy and everything that it uses | Denis Merigoux | -0/+2 | |
| Generalized operand.rs#nontemporal_store and fixed tidy issues Generalized operand.rs#nontemporal_store's implem even more With a BuilderMethod trait implemented by Builder for LLVM Cleaned builder.rs : no more code duplication, no more ValueTrait Full traitification of builder.rs | ||||
| 2018-11-16 | Work around to fix issue https://github.com/rust-lang/rust/issues/53912 | Denis Merigoux | -1/+4 | |
| 2018-11-03 | Move collect_and_partition_mono_items to rustc_mir | bjorn3 | -2/+2 | |
| 2018-11-03 | Move cg_llvm::back::linker to cg_utils | bjorn3 | -25/+5 | |
| 2018-10-08 | codegen_llvm: whitespace & formatting improvements | ljedrz | -1/+1 | |
| 2018-09-27 | Bump to 1.31.0 and bootstrap from 1.30 beta | Josh Stone | -1/+1 | |
| 2018-09-11 | stabalize infer outlives requirements (RFC 2093). | toidiu | -1/+0 | |
| Co-authored-by: nikomatsakis | ||||
| 2018-08-31 | Support local ThinLTO with incremental compilation. | Michael Woerister | -28/+12 | |
| 2018-08-31 | Persist ThinLTO import data in incr. comp. session directory. | Michael Woerister | -1/+1 | |
| 2018-08-24 | check that adding infer-outlives requirement to all crates works | Niko Matsakis | -0/+1 | |
| 2018-08-18 | Remove LinkMeta struct | bjorn3 | -2/+3 | |
| 2018-08-15 | Use CGU name as LLVM module name and add some caching to CGU name generation. | Michael Woerister | -3/+1 | |
| 2018-08-12 | Rollup merge of #53230 - memoryruins:nll_bootstrap_4, r=nikomatsakis | Guillaume Gomez | -0/+1 | |
| [nll] enable feature(nll) on various crates for bootstrap: part 4 #53172 r? @nikomatsakis | ||||
| 2018-08-10 | [nll] librustc_codegen_llvm: enable feature(nll) for bootstrap | memoryruins | -0/+1 | |
| 2018-08-09 | Move rustc::util::fs into separate (new) crate | Mark Rousskov | -0/+1 | |
