about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/intrinsic.rs
AgeCommit message (Collapse)AuthorLines
2019-03-15rustc: tie the 'tcx between Print and PrintCx in ty::print.Eduard-Mihai Burtescu-2/+2
2019-03-15rustc: remove fmt::{Debug,Display} from ty::TyKind.Eduard-Mihai Burtescu-12/+11
2019-02-27Support defining C compatible variadic functionsDan Robertson-10/+41
Add support for defining C compatible variadic functions in unsafe rust with extern "C".
2019-02-25librustc_codegen_llvm: deny(elided_lifetimes_in_paths)Mazdak Farrokhzad-9/+9
2019-02-24Auto merge of #58304 - gnzlbg:simd_saturated, r=nagisabors-0/+45
Add generic simd saturated add/sub intrinsics r? @eddyb
2019-02-20Rollup merge of #58562 - dlrobertson:fix_nits, r=alexregkennytm-4/+2
Fix style nits Fix style nits discovered in reading code. r? @alexreg
2019-02-18Fix style nitsDan Robertson-4/+2
Fix style nits discovered in reading code.
2019-02-18librustc_codegen_llvm => 2018Taiki Endo-10/+10
2019-02-08Add simd_saturating_{add,sub} intrinsicsgnzlbg-0/+45
2019-01-29Use LLVM intrinsics for saturating add/subNikita Popov-3/+41
2019-01-24Auto merge of #57269 - gnzlbg:simd_bitmask, r=rkruppebors-0/+46
Add intrinsic to create an integer bitmask from a vector mask This PR adds a new simd intrinsic: `simd_bitmask(vector) -> unsigned integer` that creates an integer bitmask from a vector mask by extracting one bit of each vector lane. This is required to implement: https://github.com/rust-lang-nursery/packed_simd/issues/166 . EDIT: the reason we need an intrinsics for this is that we have to truncate the vector lanes to an `<i1 x N>` vector, and then bitcast that to an `iN` integer (while making sure that we only materialize `i8`, ... , `i64` - that is, no `i1`, `i2`, `i4`, types), and we can't do any of that in a Rust library. r? @rkruppe
2019-01-22Add intrinsic to create an integer bitmask from the MSB of integer vectorsgnzlbg-0/+46
2019-01-14rustc: Remove platform intrinsics crateAlex Crichton-137/+1
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-25Remove licensesMark Rousskov-10/+0
2018-12-14rustc: Add an unstable `simd_select_bitmask` intrinsicAlex Crichton-1/+2
This is going to be required for binding a number of AVX-512 intrinsics in the `stdsimd` repository, and this intrinsic is the same as `simd_select` except that it takes a bitmask as the first argument instead of a SIMD vector. This bitmask is then transmuted into a `<NN x i8>` argument, depending on how many bits it is. cc rust-lang-nursery/stdsimd#310
2018-12-13rustc: Add an unstable `simd_select_bitmask` intrinsicAlex Crichton-0/+21
This is going to be required for binding a number of AVX-512 intrinsics in the `stdsimd` repository, and this intrinsic is the same as `simd_select` except that it takes a bitmask as the first argument instead of a SIMD vector. This bitmask is then transmuted into a `<NN x i8>` argument, depending on how many bits it is. cc rust-lang-nursery/stdsimd#310
2018-12-12rustc: Switch `extern` functions to abort by default on panicAlex Crichton-1/+1
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-07Various minor/cosmetic improvements to codeAlexander Regueiro-2/+2
2018-12-02Auto merge of #56198 - bjorn3:cg_ssa_refactor, r=eddybbors-116/+131
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-29Move get_static from CodegenCx to Builderbjorn3-1/+1
2018-11-29Use implicit deref instead of BuilderMethods::cx()bjorn3-119/+119
2018-11-29Move IntrinsicCallMethods::call_overflow_intrinsics to ↵bjorn3-74/+0
BuilderMethods::checked_binop
2018-11-29Don't use llvm intrinsic names in cg_ssabjorn3-0/+89
2018-11-26libcore: Add va_list lang item and intrinsicsDan Robertson-2/+56
- 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-22rustc_target: avoid using AbiAndPrefAlign where possible.Eduard-Mihai Burtescu-13/+13
2018-11-22rustc_target: separate out an individual Align from AbiAndPrefAlign.Eduard-Mihai Burtescu-6/+6
2018-11-16[eddyb] rustc_codegen_ssa: rename `interfaces` to `traits`.Eduard-Mihai Burtescu-1/+1
2018-11-16All Builder methods now take &mut self instead of &selfDenis Merigoux-118/+126
2018-11-16Added some docs + start to &mut self builder methodsDenis Merigoux-4/+4
2018-11-16Finished moving backend-agnostic code to rustc_codegen_ssaDenis Merigoux-6/+7
2018-11-16Beginning of moving all backend-agnostic code to rustc_codegen_ssaDenis Merigoux-3/+3
2018-11-16[eddyb/rebase cleanup] abstracted FuncletEduard-Mihai Burtescu-2/+2
2018-11-16Moved common.rs enumsDenis Merigoux-2/+4
2018-11-16Move doc to trait declarationsDenis Merigoux-3/+0
2018-11-16Generalized mir::codegen_mir (and all subsequent functions)Denis Merigoux-17/+17
2018-11-16Generalized base::coerce_unsized_intoDenis Merigoux-9/+9
2018-11-16Generalized base::unsized_infoDenis Merigoux-1/+1
2018-11-16Traitified IntrinsicCallMethodsDenis Merigoux-578/+607
2018-11-16Transfered memcpy and memset to BuilderMethodsDenis Merigoux-23/+32
2018-11-16Added StaticMethods traitDenis Merigoux-1/+2
2018-11-16Generalized memset and memcpyDenis Merigoux-1/+3
2018-11-16Generalized some base.rs methodsDenis Merigoux-1/+1
2018-11-16Removing LLVM content from CommonMethods -> ConstMethodsDenis Merigoux-1/+1
2018-11-16Prefixed type methods & removed trait impl for write::CodegenContextDenis Merigoux-46/+46
2018-11-16Prefixed const methods with "const" instead of "c"Denis Merigoux-35/+35
2018-11-16Traitification of type_ methodsDenis Merigoux-47/+47
The methods are now attached to CodegenCx instead of Type
2018-11-16All CommonMethods now real methods (not static)Denis Merigoux-4/+4
2018-11-16Added self argument for Codegen CommonMethod trait methodsDenis Merigoux-34/+34
2018-11-16Replaced Codegen field access by trait methodDenis Merigoux-41/+41
2018-11-16Traitification of common.rs methodsDenis Merigoux-38/+46