| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2019-02-25 | librustc_codegen_llvm: deny(elided_lifetimes_in_paths) | Mazdak Farrokhzad | -1/+1 | |
| 2019-02-24 | Auto merge of #58304 - gnzlbg:simd_saturated, r=nagisa | bors | -8/+18 | |
| Add generic simd saturated add/sub intrinsics r? @eddyb | ||||
| 2019-02-18 | librustc_codegen_llvm => 2018 | Taiki Endo | -15/+15 | |
| 2019-02-14 | Rollup merge of #58308 - gnzlbg:context_insert_intr, r=eddyb | Mazdak Farrokhzad | -12/+17 | |
| Extract block to insert an intrinsic into its own function r? @eddyb | ||||
| 2019-02-10 | rustc: doc comments | Alexander Regueiro | -2/+2 | |
| 2019-02-08 | Add simd_saturating_{add,sub} intrinsics | gnzlbg | -8/+18 | |
| 2019-02-08 | Extract block to insert an intrinsic into its own function | gnzlbg | -12/+17 | |
| 2019-01-29 | Use LLVM intrinsics for saturating add/sub | Nikita Popov | -0/+24 | |
| 2019-01-24 | Implement optimize(size) and optimize(speed) | Simonas Kazlauskas | -2/+3 | |
| 2019-01-04 | add support for principal-less trait object types | Ariel Ben-Yehuda | -2/+3 | |
| should be a pure refactoring. | ||||
| 2018-12-25 | Remove licenses | Mark Rousskov | -10/+0 | |
| 2018-12-17 | Auto merge of #56642 - nikic:llvm-6, r=alexcrichton | bors | -5/+0 | |
| Bump minimum required LLVM version to 6.0 Based on the discussion in #55842, while the overall position of Rust wrt LLVM continues to be contentious, there does seem to be a consensus that there is no need for continued support of LLVM 5. This PR bumps our version requirement to LLVM 6.0 and makes Travis run against that. I hope that this is going to unblock #52694. If I understand correctly, while this issue still exists in LLVM 6, Ubuntu has backported the relevant patch. r? @alexcrichton | ||||
| 2018-12-12 | rustc: Switch `extern` functions to abort by default on panic | Alex Crichton | -1/+0 | |
| This was intended to land way back in 1.24, but it was backed out due to breakage which has long since been fixed. An unstable `#[unwind]` attribute can be used to tweak the behavior here, but this is currently simply switching rustc's internal default to abort-by-default if an `extern` function panics, making our codegen sound primarily (as currently you can produce UB with safe code) Closes #52652 | ||||
| 2018-12-11 | Remove env_alloca hack | Nikita Popov | -5/+0 | |
| This is no longer necessary for LLVM >= 6. | ||||
| 2018-12-07 | Various minor/cosmetic improvements to code | Alexander Regueiro | -1/+1 | |
| 2018-12-02 | Auto merge of #56198 - bjorn3:cg_ssa_refactor, r=eddyb | bors | -7/+7 | |
| Refactor rustc_codegen_ssa cc #56108 (not all things are done yet) This removes an unsafe method from cg_ssa. r? @eddyb cc @sunfishcode | ||||
| 2018-11-29 | Remove an unnecessary reference | bjorn3 | -1/+1 | |
| 2018-11-29 | Don't use llvm intrinsic names in cg_ssa | bjorn3 | -2/+2 | |
| 2018-11-29 | Remove static_replace_all_uses and statics_to_rauw from cg_ssa | bjorn3 | -4/+4 | |
| 2018-11-26 | libcore: Add va_list lang item and intrinsics | Dan Robertson | -11/+16 | |
| - 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_llvm: remove unused parametrization of `CodegenCx` and ↵ | Eduard-Mihai Burtescu | -12/+12 | |
| `Builder` over `Value`s. | ||||
| 2018-11-16 | [eddyb] rustc_codegen_ssa: rename `interfaces` to `traits`. | Eduard-Mihai Burtescu | -1/+1 | |
| 2018-11-16 | Finished moving backend-agnostic code to rustc_codegen_ssa | Denis Merigoux | -9/+10 | |
| 2018-11-16 | Great separation of librustc_codegen_llvm: librustc_codegen_ssa compiles | Denis Merigoux | -0/+4 | |
| 2018-11-16 | Preparing the generalization of base:compile_coodegen_unit | Denis Merigoux | -0/+31 | |
| 2018-11-16 | Renamed lifetimes for better understanding | Denis Merigoux | -14/+13 | |
| 2018-11-16 | Move doc to trait declarations | Denis Merigoux | -1/+0 | |
| 2018-11-16 | Generalized base:maybe_create_entry_wrapper | Denis Merigoux | -0/+8 | |
| 2018-11-16 | Generalized mono_item.rs and base.rs:codegen_instance | Denis Merigoux | -0/+8 | |
| 2018-11-16 | Generalized mir::codegen_mir (and all subsequent functions) | Denis Merigoux | -87/+97 | |
| 2018-11-16 | Generalized base::unsize_thin_ptr | Denis Merigoux | -26/+0 | |
| 2018-11-16 | Generalized base::unsized_info | Denis Merigoux | -2/+13 | |
| 2018-11-16 | [eddyb/rebase cleanup] s/&self./self. | Eduard-Mihai Burtescu | -29/+29 | |
| 2018-11-16 | Traitified IntrinsicCallMethods | Denis Merigoux | -7/+2 | |
| 2018-11-16 | Generalized memset and memcpy | Denis Merigoux | -316/+322 | |
| 2018-11-16 | Prefixed type methods & removed trait impl for write::CodegenContext | Denis Merigoux | -26/+26 | |
| 2018-11-16 | Traitification of type_ methods | Denis Merigoux | -26/+27 | |
| The methods are now attached to CodegenCx instead of Type | ||||
| 2018-11-16 | Removed genericity over Value in various functions | Denis Merigoux | -21/+21 | |
| Prelude to using associated types in traits rather than type parameters | ||||
| 2018-11-16 | Generalized base.rs#call_memcpy and everything that it uses | Denis Merigoux | -18/+23 | |
| 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 | Reduced line length to pass tidy | Denis Merigoux | -13/+12 | |
| Generalized FunctionCx Added ValueTrait and first change Generalize CondegenCx Generalized the Builder struct defined in librustc_codegen_llvm/builder.rs | ||||
| 2018-11-12 | Use type safe `VariantIdx` instead of `usize` everywhere | Oliver Scherer | -2/+2 | |
| 2018-11-10 | Auto merge of #55650 - nikic:funnel-shift, r=nagisa | bors | -0/+12 | |
| Implement rotate using funnel shift on LLVM >= 7 Implement the rotate_left and rotate_right operations using llvm.fshl and llvm.fshr if they are available (LLVM >= 7). Originally I wanted to expose the funnel_shift_left and funnel_shift_right intrinsics and implement rotate_left and rotate_right on top of them. However, emulation of funnel shifts requires emitting a conditional to check for zero shift amount, which is not necessary for rotates. I was uncomfortable doing that here, as I don't want to rely on LLVM to optimize away that conditional (and for variable rotates, I'm not sure it can). We should revisit that question when we raise our minimum version requirement to LLVM 7 and don't need emulation code anymore. Fixes #52457. | ||||
| 2018-11-08 | Rollup merge of #55633 - nikic:memcpy-align, r=nagisa | Mark Rousskov | -6/+0 | |
| Support memcpy/memmove with differing src/dst alignment If LLVM 7 is used, generate memcpy/memmove with differing src/dst alignment. I've added new FFI functions to construct these through the builder API, which is more convenient than dealing with differing intrinsic signatures depending on the LLVM version. Fixes #49740. | ||||
| 2018-11-04 | rustc_target: pass contexts by reference, not value. | Eduard-Mihai Burtescu | -6/+6 | |
| 2018-11-04 | Support memcpy/memmove with differing src/dst alignment | Nikita Popov | -6/+0 | |
| If LLVM 7 is used, generate memcpy/memmove with differing src/dst alignment. I've added new FFI functions to construct these through the builder API, which is more convenient than dealing with differing intrinsic signatures depending on the LLVM version. | ||||
| 2018-11-03 | Implement rotate using funnel shift on LLVM >= 7 | Nikita Popov | -0/+12 | |
| Implement the rotate_left and rotate_right operations using llvm.fshl and llvm.fshr if they are available (LLVM >= 7). Originally I wanted to expose the funnel_shift_left and funnel_shift_right intrinsics and implement rotate_left and rotate_right on top of them. However, emulation of funnel shifts requires emitting a conditional to check for zero shift amount, which is not necessary for rotates. I was uncomfortable doing that here, as I don't want to rely on LLVM to optimize away that conditional (and for variable rotates, I'm not sure it can). We should revisit that question when we raise our minimum version requirement to LLVM 7 and don't need emulation code anymore. | ||||
| 2018-10-24 | Make declare_fn accept PolyFnSig instead of Ty. | Masaki Hara | -3/+3 | |
| 2018-10-24 | Make declare_fn aware of vtable shims. | Masaki Hara | -1/+1 | |
| 2018-10-19 | Prefer `Default::default` over `FxHash*::default` in struct constructors | Oliver Scherer | -9/+9 | |
| 2018-10-19 | Deprecate the `FxHashMap()` and `FxHashSet()` constructor function hack | Oliver Scherer | -9/+9 | |
