Commit Graph

86269 Commits

Author SHA1 Message Date
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 Values. 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