Commit graph

45 commits

Author SHA1 Message Date
bjorn3
b71c429007 Remove type_variadic_func and typ_array from cg_ssa 2019-03-29 17:17:13 +01:00
bjorn3
0e166bb217 Remove a lot of methods from *TypeMethods 2019-03-29 17:17:13 +01:00
bjorn3
b0ee1f7f99 Remove scalar_lltypes from cg_ssa 2019-03-29 17:17:13 +01:00
bjorn3
7de0b1de19 Move get_param and set_value_name 2019-03-29 17:17:13 +01:00
bjorn3
bcab49720e Remove a lot of methods from BuilderMethods 2019-03-29 17:17:12 +01:00
bjorn3
794ecd965a [WIP] Make some debug info methods take &mut FunctionDebugContext
declare_local still takes &FunctionDebugContext, because of borrowck errors
2019-03-29 17:17:12 +01:00
bjorn3
7b94195c22 Remove const_{cstr,str_slice,get_elt,get_real} and is_const_real methods from cg_ssa
This introduces the static_panic_msg trait method to StaticBuilderMethods.
2019-03-29 17:17:12 +01:00
bjorn3
a3fa1161d2 Remove const_{fat_ptr,array,vector,bytes} from cg_ssa 2019-03-29 17:17:12 +01:00
bjorn3
a0056333f1 Misc 2019-03-29 17:17:12 +01:00
bjorn3
2b688a959d Don't use c_uint in cg_ssa 2019-03-29 17:06:27 +01:00
Eduard-Mihai Burtescu
01fa283d6f rustc: remove fmt::{Debug,Display} from ty::TyKind. 2019-03-15 09:26:13 +02:00
Wesley Wiser
4c8cc14186 Replace TimeLine with SelfProfiler 2019-03-10 11:10:55 -04:00
Gabriela Alexandra Moldovan
cd9a0cf537 Make the lifetime parameters of tcx consistent. 2019-03-04 23:49:04 +00:00
Dan Robertson
58147d486b
Support defining C compatible variadic functions
Add support for defining C compatible variadic functions in unsafe rust
with extern "C".
2019-02-27 10:21:35 -05:00
Mazdak Farrokhzad
1d34f2c228 librustc_codegen_ssa: deny(elided_lifetimes_in_paths) 2019-02-25 08:52:46 +01:00
Gabriela Alexandra Moldovan
36f18f2d3a Allow Self::Module to be mutated.
`codegen_allocator` and `write_metadata` mutate the underlying LLVM module. As
such, it makes sense for these two functions to receive a mutable reference to
the module (as opposed to an immutable one).
2019-02-20 21:35:34 +00:00
Mazdak Farrokhzad
2a539a1b91
Rollup merge of #58378 - alexcrichton:incremental-lto, r=michaelwoerister
rustc: Implement incremental "fat" LTO

Currently the compiler will produce an error if both incremental
compilation and full fat LTO is requested. With recent changes and the
advent of incremental ThinLTO, however, all the hard work is already
done for us and it's actually not too bad to remove this error!

This commit updates the codegen backend to allow incremental full fat
LTO. The semantics are that the input modules to LTO are all produce
incrementally, but the final LTO step is always done unconditionally
regardless of whether the inputs changed or not. The only real
incremental win we could have here is if zero of the input modules
changed, but that's so rare it's unlikely to be worthwhile to implement
such a code path.

cc #57968
cc rust-lang/cargo#6643
2019-02-14 08:24:15 +01:00
bors
b244f61b77 Auto merge of #58341 - alexreg:cosmetic-2-doc-comments, r=steveklabnik
Cosmetic improvements to doc comments

This has been factored out from https://github.com/rust-lang/rust/pull/58036 to only include changes to documentation comments (throughout the rustc codebase).

r? @steveklabnik

Once you're happy with this, maybe we could get it through with r=1, so it doesn't constantly get invalidated? (I'm not sure this will be an issue, but just in case...) Anyway, thanks for your advice so far!
2019-02-12 19:09:24 +00:00
Alex Crichton
e983b4f64e rustc: Implement incremental "fat" LTO
Currently the compiler will produce an error if both incremental
compilation and full fat LTO is requested. With recent changes and the
advent of incremental ThinLTO, however, all the hard work is already
done for us and it's actually not too bad to remove this error!

This commit updates the codegen backend to allow incremental full fat
LTO. The semantics are that the input modules to LTO are all produce
incrementally, but the final LTO step is always done unconditionally
regardless of whether the inputs changed or not. The only real
incremental win we could have here is if zero of the input modules
changed, but that's so rare it's unlikely to be worthwhile to implement
such a code path.

cc #57968
cc rust-lang/cargo#6643
2019-02-12 04:58:31 -08:00
Alexander Regueiro
c3e182cf43 rustc: doc comments 2019-02-10 23:42:32 +00:00
Taiki Endo
be71fccf11 librustc_codegen_ssa => 2018 2019-02-09 23:31:47 +09:00
Simonas Kazlauskas
f38d0da893 Implement optimize(size) and optimize(speed) 2019-01-24 20:13:50 +02:00
Ariel Ben-Yehuda
3aa1503a61 add support for principal-less trait object types
should be a pure refactoring.
2019-01-04 00:34:52 +02:00
Mark Rousskov
2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
Nikita Popov
6c2d704950 Remove env_alloca hack
This is no longer necessary for LLVM >= 6.
2018-12-11 10:34:02 +01:00
Alexander Regueiro
ee89c088b0 Various minor/cosmetic improvements to code 2018-12-07 23:53:34 +00:00
Nikita Popov
8128d0d1a9 Serialize modules into ThinBuffer after initial optimization
Instead of keeping all modules in memory until thin LTO and only
serializing them then, serialize the module immediately after
it finishes optimizing.
2018-12-04 16:24:20 +01:00
Nikita Popov
bc2db43b9e Remove unnecessary parts of run_fat_lto signature
Fat LTO merges into one module, so only return one module.
2018-12-04 16:10:24 +01:00
Nikita Popov
bdbee6311b Separate out methods for running thin and fat LTO 2018-12-04 16:10:24 +01:00
bjorn3
d108a913c7 Move get_static from CodegenCx to Builder 2018-11-29 18:19:44 +01:00
bjorn3
e45733048e Require Deref to CodegenCx for HasCodegen 2018-11-29 18:19:44 +01:00
bjorn3
e8da3c6c32 Remove static_addr_of_mut from cg_ssa 2018-11-29 18:19:43 +01:00
bjorn3
aaca5a38ee Rename StaticMethods::static_ptrcast to ConstMethods::const_ptrcast 2018-11-29 18:19:43 +01:00
bjorn3
59682d3e2a Remove static_bitcast from cg_ssa 2018-11-29 18:19:43 +01:00
bjorn3
2d4c96d1b1 Move IntrinsicCallMethods::call_overflow_intrinsics to BuilderMethods::checked_binop 2018-11-29 18:19:42 +01:00
bjorn3
9a9045573f Remove call_lifetime_intrinsic from cg_ssa 2018-11-29 18:19:42 +01:00
bjorn3
187c4cf257 Use BackendTypes instead of Backend or HasCodegen in a few places 2018-11-29 18:19:42 +01:00
bjorn3
66c3195c4c Rustfmt on cg_ssa/traits 2018-11-29 18:19:42 +01:00
bjorn3
15a5009af0 Don't use llvm intrinsic names in cg_ssa 2018-11-29 18:19:41 +01:00
bjorn3
2d46ee26fb Remove static_replace_all_uses and statics_to_rauw from cg_ssa 2018-11-29 18:19:41 +01:00
bjorn3
436eff5e84 Make ConstMethods and StaticMethods require BackendTypes instead of Backend 2018-11-29 18:19:41 +01:00
bjorn3
b3b6e4dd9b Some refactorings 2018-11-29 18:19:41 +01:00
Eduard-Mihai Burtescu
5b4747ded7 rustc_target: avoid using AbiAndPrefAlign where possible. 2018-11-22 05:01:49 +02:00
Eduard-Mihai Burtescu
d56e892085 rustc_target: rename abi::Align to AbiAndPrefAlign. 2018-11-22 04:12:59 +02:00
Eduard-Mihai Burtescu
0b569249c8 [eddyb] rustc_codegen_ssa: rename interfaces to traits. 2018-11-16 15:08:18 +02:00