about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/base.rs
AgeCommit message (Collapse)AuthorLines
2018-11-16Move doc to trait declarationsDenis Merigoux-34/+34
2018-11-16Generalized base:maybe_create_entry_wrapperDenis Merigoux-24/+25
2018-11-16Generalized mono_item.rs and base.rs:codegen_instanceDenis Merigoux-16/+22
2018-11-16Generalized mir::codegen_mir (and all subsequent functions)Denis Merigoux-10/+12
2018-11-16Generalized base::coerce_unsized_intoDenis Merigoux-13/+13
2018-11-16Generalized base::unsize_thin_ptrDenis Merigoux-9/+9
2018-11-16Generalized base::unsized_infoDenis Merigoux-10/+9
2018-11-16Traitified IntrinsicCallMethodsDenis Merigoux-3/+1
2018-11-16Transfered memcpy and memset to BuilderMethodsDenis Merigoux-40/+1
2018-11-16Generalized memset and memcpyDenis Merigoux-19/+21
2018-11-16Generalized some base.rs methodsDenis Merigoux-31/+40
2018-11-16Attempt at including CodegenCx within Builder with Associated typesDenis Merigoux-1/+1
2018-11-16Removing LLVM content from CommonMethods -> ConstMethodsDenis Merigoux-5/+5
2018-11-16Prefixed type methods & removed trait impl for write::CodegenContextDenis Merigoux-14/+17
2018-11-16Prefixed const methods with "const" instead of "c"Denis Merigoux-6/+6
2018-11-16Traitification of type_ methodsDenis Merigoux-19/+19
The methods are now attached to CodegenCx instead of Type
2018-11-16Use the method form for CodegenCx everywhereDenis Merigoux-9/+9
2018-11-16All CommonMethods now real methods (not static)Denis Merigoux-1/+1
2018-11-16CommonWriteMethods are not static any moreDenis Merigoux-12/+13
2018-11-16Split CommonMethods to accomodate for use in back/write.rsDenis Merigoux-1/+1
2018-11-16Replaced Codegen field access by trait methodDenis Merigoux-19/+19
2018-11-16Traitification of common.rs methodsDenis Merigoux-16/+15
2018-11-16New files and folders for traitsDenis Merigoux-2/+2
Moved common enums to common
2018-11-16Use associated types instead of type parameters inside the BuilderMethods traitDenis Merigoux-10/+6
2018-11-16Removed genericity over Value in various functionsDenis Merigoux-8/+5
Prelude to using associated types in traits rather than type parameters
2018-11-16Generalized RealPredicateDenis Merigoux-8/+8
2018-11-16Generalized IntPredicate in the BuilderMethods traitDenis Merigoux-8/+8
2018-11-16Generalized BasicBlocks in BuilderMethods traitDenis Merigoux-3/+4
2018-11-16Generalized base.rs#call_memcpy and everything that it usesDenis Merigoux-13/+25
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-16rustc_codegen_llvm: begin generalizing over backend values.Irina Popa-2/+2
2018-11-15Rollup merge of #55901 - euclio:speling, r=petrochenkovPietro Albini-1/+1
fix various typos in doc comments
2018-11-13fix various typos in doc commentsAndy Russell-1/+1
2018-11-12Use type safe `VariantIdx` instead of `usize` everywhereOliver Scherer-2/+3
2018-11-08Rollup merge of #55633 - nikic:memcpy-align, r=nagisaMark Rousskov-15/+12
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-05Auto merge of #55593 - nikic:remove-llvm-4-checks, r=rkruppebors-13/+0
Remove checks for LLVM < 4.0 While we still have to support LLVM 4.0 for Emscripten, we can drop checks for LLVM >= 4.0 and < 4.0.
2018-11-04Support memcpy/memmove with differing src/dst alignmentNikita Popov-15/+12
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-04Auto merge of #55349 - bjorn3:rustc_mir_collect_and_partition_mono_items, ↵bors-151/+4
r=oli-obk Move collect_and_partition_mono_items to rustc_mir Most of the logic of it is inside rustc_mir anyway. Also removes the single function crate rustc_metadata_utils. Based on #55225
2018-11-03Move collect_and_partition_mono_items to rustc_mirbjorn3-151/+4
2018-11-03Auto merge of #55330 - scalexm:bound-ty, r=nikomatsakisbors-1/+1
Add support for bound types This PR may have some slight performance impacts, I don't know how hot is the code I touched. Also, this breaks clippy and miri. r? @nikomatsakis
2018-11-03Rename `Binder::no_late_bound_regions` to `Binder::no_bound_vars`scalexm-1/+1
2018-11-02rustc: Wait for all codegen threads to exitAlex Crichton-4/+53
This commit updates rustc to wait for all codegen threads to exit before allowing the main thread to exit. This is a stab in the dark to fix the mysterious segfaults appearing on #55238, and hopefully we'll see whether this actually fixes things in practice...
2018-11-01Remove checks for LLVM < 4.0Nikita Popov-13/+0
While we still have to support LLVM 4.0 for Emscripten, we can drop checks for LLVM >= 4.0 and < 4.0.
2018-10-27Auto merge of #54183 - qnighy:by-value-object-safety, r=oli-obkbors-3/+2
Implement by-value object safety This PR implements **by-value object safety**, which is part of unsized rvalues #48055. That means, with `#![feature(unsized_locals)]`, you can call a method `fn foo(self, ...)` on trait objects. One aim of this is to enable `Box<FnOnce>` in the near future. The difficulty here is this: when constructing a vtable for a trait `Foo`, we can't just put the function `<T as Foo>::foo` into the table. If `T` is no larger than `usize`, `self` is usually passed directly. However, as the caller of the vtable doesn't know the concrete `Self` type, we want a variant of `<T as Foo>::foo` where `self` is always passed by reference. Therefore, when the compiler encounters such a method to be generated as a vtable entry, it produces a newly introduced instance called `InstanceDef::VtableShim(def_id)` (that wraps the original instance). the shim just derefs the receiver and calls the original method. We give different symbol names for the shims by appending `::{{vtable-shim}}` to the symbol path (and also adding vtable-shimness as an ingredient to the symbol hash). r? @eddyb
2018-10-26Remove redundant cloneShotaro Yamada-1/+1
2018-10-24Move codegen_llvm::common::ty_fn_sig into rustc::ty::Instance.Masaki Hara-3/+2
2018-10-24Add ty_fn_sig_vtable for getting adjusted signature for vtable shims.Masaki Hara-1/+1
2018-10-19Prefer `Default::default` over `FxHash*::default` in struct constructorsOliver Scherer-9/+9
2018-10-19Deprecate the `FxHashMap()` and `FxHashSet()` constructor function hackOliver Scherer-8/+8
2018-10-08codegen_llvm: fix spelling & grammatical errorsljedrz-2/+2
2018-10-08codegen_llvm: improve common patternsljedrz-10/+3