Ralf Jung
a7b312f825
erase the tag on casts involving (raw) pointers
2018-11-17 09:08:30 +01:00
Sergio Benitez
78eb516dda
Ignore non-semantic tokens for 'probably_eq' streams.
2018-11-16 23:37:23 -08: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
Ralf Jung
41434e001b
avoid shared ref in UnsafeCell::get
2018-11-16 22:17:26 +01: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
Ralf Jung
0c0478d57a
adjust remaining tests
2018-11-16 22:04:14 +01:00
Benoît C
c1221e2072
Replace data.clone() by Arc::clone(&data) in mutex doc.
...
Arc::clone(&from) is considered as more idiomatic because it conveys more explicitly the meaning of the code.
2018-11-16 15:34:12 -05:00
Ralf Jung
303dbccf04
CTFE: dynamically make sure we do not call non-const-fn
2018-11-16 18:05:08 +01:00
Niko Matsakis
6575988d8e
handle trait objects formed from traits with Self::Foo: 'a
clauses
2018-11-16 09:37:33 -05:00
Niko Matsakis
0d744ec6ec
improve debug output related to bound calculation
2018-11-16 09:37:32 -05: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