Michal 'vorner' Vaner
cc63bd47ef
atomic::Ordering: Get rid of misleading parts of intro
...
Remove the parts of atomic::Ordering's intro that wrongly claimed that
SeqCst prevents all reorderings around it.
Closes #55196
2018-11-18 11:12:01 +01:00
bors
f6e9485bfc
Auto merge of #55627 - sunfishcode:cg-llvm-gen, r=nikomatsakis
...
rustc_codegen_llvm: traitification of LLVM-specific CodegenCx and Builder methods
This PR is the continuation of #54012 and earlier PRs, in the grand plan of #45274 to allow for multiple codegen backends.
High-level summary: interpose a set of traits between Rust's codegen logic and the LLVM APIs, allowing another backend to implement the traits and share most of the codegen logic. These traits are currently somewhat LLVM-specific, but once this refactoring is in place, they can evolve to be more general.
See [this README](756f84d7ce/src/librustc_codegen_ssa/README.md
) for a writeup on the current trait organization.
2018-11-17 04:10:52 +00:00
bors
ee821736cc
Auto merge of #55936 - nrc:save-rename, r=eddyb
...
save-analysis: be even more aggressive about ignorning macro-generated defs
r? @eddyb
2018-11-16 21:11:24 +00:00
Eduard-Mihai Burtescu
756f84d7ce
[eddyb] rustc_codegen_llvm: remove unused parametrization of CodegenCx
and Builder
over Value
s.
2018-11-16 15:08:18 +02:00
Eduard-Mihai Burtescu
0b569249c8
[eddyb] rustc_codegen_ssa: rename interfaces
to traits
.
2018-11-16 15:08:18 +02:00
Eduard-Mihai Burtescu
d1410ada92
[eddyb] rustc_codegen_ssa: avoid a Clone
bound on TargetMachine
.
2018-11-16 15:08:18 +02:00
Eduard-Mihai Burtescu
47c84c4234
[eddyb] rustc_codegen_llvm: remove unnecessary 'a
from LlvmCodegenBackend
impls.
2018-11-16 15:08:18 +02:00
Eduard-Mihai Burtescu
9f49a2626e
[eddyb] rustc_codegen_utils: remove extraneous #![allow(dead_code)]
.
2018-11-16 15:08:18 +02:00
Eduard-Mihai Burtescu
9bb6663431
[eddyb] rustc_codegen_ssa: handle LLVM unsafety correctly.
2018-11-16 15:08:18 +02:00
Denis Merigoux
bf7f8cd3fc
Added README explaining the refactoring
2018-11-16 15:08:18 +02:00
Denis Merigoux
b9e5cf99a9
Separating the back folder between backend-agnostic and LLVM-specific code
2018-11-16 15:08:18 +02:00
Denis Merigoux
b25b804013
Added default impl for DerivedTypeMethods + empty impl for Cranelift BaseTypeMethods
2018-11-16 15:08:18 +02:00
Denis Merigoux
54dd3a47fd
All Builder methods now take &mut self instead of &self
2018-11-16 15:08:18 +02:00
Denis Merigoux
1ebdfbb026
Added some docs + start to &mut self builder methods
2018-11-16 15:08:18 +02:00
Denis Merigoux
015e4441f5
Finished moving backend-agnostic code to rustc_codegen_ssa
2018-11-16 15:08:18 +02:00
Denis Merigoux
c0a428ee70
Great separation of librustc_codegen_llvm: librustc_codegen_ssa compiles
2018-11-16 15:07:24 +02:00
Denis Merigoux
915382f730
Moved DeclareMethods, MiscMethods and StaticMethods
2018-11-16 14:55:47 +02:00
Denis Merigoux
c9f26c2155
Beginning of moving all backend-agnostic code to rustc_codegen_ssa
2018-11-16 14:55:42 +02:00
Denis Merigoux
b02e5cce16
Moved Backend interface into rustc_codegen_utils
2018-11-16 14:40:16 +02:00
Eduard-Mihai Burtescu
b06836e71a
[eddyb/rebase cleanup] move type_{needs_drop,is_sized,is_freeze} to rustc_codegen_utils
2018-11-16 14:40:16 +02:00
Eduard-Mihai Burtescu
35b40f51fb
[eddyb/rebase cleanup] abstracted Funclet
2018-11-16 14:40:12 +02:00
Denis Merigoux
566fa4d003
Moved common.rs enums
2018-11-16 14:38:19 +02:00
Denis Merigoux
39fd4d9274
Starting to move backend-agnostic code into codegen_utils
...
IntPredicate moved
2018-11-16 14:38:19 +02:00
Denis Merigoux
4ba09ab8d2
Added compile codegen to backend trait
2018-11-16 14:38:19 +02:00
Denis Merigoux
6819e6e6e1
Preparing the generalization of base:compile_coodegen_unit
2018-11-16 14:38:15 +02:00
Denis Merigoux
91a2a80692
Renamed lifetimes for better understanding
2018-11-16 14:36:43 +02:00
Denis Merigoux
8d530db2c5
Generalized base:codegen_crate
2018-11-16 14:36:43 +02:00
Denis Merigoux
97825a36be
Move doc to trait declarations
2018-11-16 14:36:38 +02:00
Denis Merigoux
ac34068ed9
Generalized base:maybe_create_entry_wrapper
2018-11-16 14:34:26 +02:00
Denis Merigoux
b14f3e5490
Adapt code to latest rustc master changes
2018-11-16 14:34:26 +02:00
Denis Merigoux
441a7c1092
Generalized mono_item.rs and base.rs:codegen_instance
2018-11-16 14:34:26 +02:00
Denis Merigoux
6a993fe353
Generalized mir::codegen_mir (and all subsequent functions)
2018-11-16 14:33:10 +02:00
Denis Merigoux
cbe31a4229
Generalized base::coerce_unsized_into
2018-11-16 14:15:13 +02:00
Denis Merigoux
78dd95f4c7
Generalized base::unsize_thin_ptr
2018-11-16 14:15:13 +02:00
Denis Merigoux
034f69753b
Generalized base::unsized_info
2018-11-16 14:15:13 +02:00
Eduard-Mihai Burtescu
484e07c231
[eddyb/rebase cleanup] s/&self./self.
2018-11-16 14:15:13 +02:00
Denis Merigoux
0a1c50955b
Traitified IntrinsicCallMethods
2018-11-16 14:12:49 +02:00
Denis Merigoux
a5aeb8edd6
Transfered memcpy and memset to BuilderMethods
2018-11-16 14:11:59 +02:00
Denis Merigoux
3c082a23e8
Added StaticMethods trait
2018-11-16 14:11:59 +02:00
Denis Merigoux
d77e34f35b
Generalized memset and memcpy
2018-11-16 14:11:59 +02:00
Denis Merigoux
0514c7b1b2
Generalized some base.rs methods
2018-11-16 14:11:59 +02:00
Denis Merigoux
c487b825b0
Attempt at including CodegenCx within Builder with Associated types
2018-11-16 14:11:59 +02:00
Denis Merigoux
1929ac2007
Fixed typos
2018-11-16 14:11:59 +02:00
Denis Merigoux
4787b7cac9
Removed phantomdata no longer necessary
...
Because CodegenContext doesn't implement Backend anymore
2018-11-16 14:11:59 +02:00
Denis Merigoux
a1d0d4f943
Removing LLVM content from CommonMethods -> ConstMethods
2018-11-16 14:11:59 +02:00
Denis Merigoux
e224f063e8
Prefixed type methods & removed trait impl for write::CodegenContext
2018-11-16 14:11:59 +02:00
Denis Merigoux
6d42574b7a
Prefixed const methods with "const" instead of "c"
2018-11-16 14:11:59 +02:00
Denis Merigoux
730b13ab51
Traitification of type_ methods
...
The methods are now attached to CodegenCx instead of Type
2018-11-16 14:11:59 +02:00
Denis Merigoux
5f28e0a0b6
Added definition of type trait
2018-11-16 14:11:59 +02:00
Denis Merigoux
3e77f2fc4f
Use the method form for CodegenCx everywhere
2018-11-16 14:11:59 +02:00