Commit graph

62 commits

Author SHA1 Message Date
Simonas Kazlauskas
f38d0da893 Implement optimize(size) and optimize(speed) 2019-01-24 20:13:50 +02:00
Alex Crichton
7616daabc7 rustc: Remove platform intrinsics crate
This was originally attempted in #57048 but it was realized that we
could fully remove the crate via the `"unadjusted"` ABI on intrinsics.
This means that all intrinsics in stdsimd are implemented directly
against LLVM rather than using the abstraction layer provided here. That
ends up meaning that this crate is no longer used at all.

This crate developed long ago to implement the SIMD intrinsics, but we
didn't end up using it in the long run. In that case let's remove it!
2019-01-14 09:54:23 -08:00
Mark Rousskov
2a663555dd Remove licenses 2018-12-25 21:08:33 -07: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
Dan Robertson
08140878fe
libcore: Add va_list lang item and intrinsics
- Add the llvm intrinsics used to manipulate a va_list.
 - Add the va_list lang item in order to allow implementing
   VaList in libcore.
2018-11-26 22:56:19 +00: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
Denis Merigoux
b9e5cf99a9 Separating the back folder between backend-agnostic and LLVM-specific code 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
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
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
8d530db2c5 Generalized base:codegen_crate 2018-11-16 14:36:43 +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
6d42574b7a Prefixed const methods with "const" instead of "c" 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
33eee83737 Removed code duplication for CommonWriteMethods 2018-11-16 14:11:59 +02:00
Denis Merigoux
4cc18d3de5 CommonWriteMethods are not static any more 2018-11-16 14:11:59 +02:00
Denis Merigoux
d577ec7e5f New files and folders for traits
Moved common enums to common
2018-11-16 14:11:59 +02:00
Denis Merigoux
34c5dc045f Generalized base.rs#call_memcpy and everything that it uses
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-16 14:11:09 +02:00
Denis Merigoux
c76fc3d804 Work around to fix issue https://github.com/rust-lang/rust/issues/53912 2018-11-16 14:11:09 +02:00
bjorn3
d46246b14a Move collect_and_partition_mono_items to rustc_mir 2018-11-03 14:31:09 +01:00
bjorn3
942864a000 Move cg_llvm:🔙:linker to cg_utils 2018-11-03 13:35:09 +01:00
ljedrz
61f47737b5 codegen_llvm: whitespace & formatting improvements 2018-10-08 16:52:34 +02:00
Josh Stone
ce034951fb Bump to 1.31.0 and bootstrap from 1.30 beta 2018-09-27 20:52:53 -07:00
toidiu
731f4efae5 stabalize infer outlives requirements (RFC 2093).
Co-authored-by: nikomatsakis
2018-09-11 11:40:04 -04:00
Michael Woerister
64a738d8ce Support local ThinLTO with incremental compilation. 2018-08-31 15:22:52 +02:00
Michael Woerister
d97d1e192b Persist ThinLTO import data in incr. comp. session directory. 2018-08-31 15:22:52 +02:00
Niko Matsakis
73fb1622b3 check that adding infer-outlives requirement to all crates works 2018-08-24 17:10:50 -04:00
bjorn3
d52047faf0 Remove LinkMeta struct 2018-08-18 12:08:06 +02:00
Michael Woerister
d662083a6c Use CGU name as LLVM module name and add some caching to CGU name generation. 2018-08-15 14:50:54 +02:00
Guillaume Gomez
3e9a1a1b82
Rollup merge of #53230 - memoryruins:nll_bootstrap_4, r=nikomatsakis
[nll] enable feature(nll) on various crates for bootstrap: part 4

#53172

r? @nikomatsakis
2018-08-12 23:26:56 +02:00
memoryruins
46b818e276 [nll] librustc_codegen_llvm: enable feature(nll) for bootstrap 2018-08-10 06:28:24 -04:00
Mark Rousskov
e3177c6f3f Move rustc::util::fs into separate (new) crate 2018-08-09 10:00:25 -06:00
varkor
c81b95f305 Remove unnecessary feature attributes that sneaked in 2018-08-05 15:54:49 +01:00
Wesley Wiser
45482c6f99 Basic profiling 2018-08-02 18:57:24 -04:00
Irina Popa
249d5acaec rustc_codegen_llvm: use safe references for Context and Module. 2018-07-30 18:27:52 +03:00
Irina Popa
af04e9426c rustc_codegen_llvm: move from empty enums to extern types. 2018-07-30 18:12:47 +03:00
Irina Popa
077be49bde rustc_llvm: move to rustc_codegen_llvm::llvm. 2018-07-30 18:03:50 +03:00
Tatsuyuki Ishi
e098985939 Deny bare_trait_objects globally 2018-07-25 10:25:29 +09:00
Michael Woerister
5c0110f44b Revert "Persist ThinLTO import data in incr. comp. session directory."
This reverts commit 8dc7ddb976.
2018-07-16 08:58:56 +02:00
Michael Woerister
0830cc92bd Revert "Clean up LLVM module naming (just use CodegenUnit names)."
This reverts commit f6894ebe66.
2018-07-16 08:58:29 +02:00
bors
a14a361c2c Auto merge of #52266 - michaelwoerister:incr-thinlto-preliminaries, r=alexcrichton
Preliminary work for incremental ThinLTO.

Since implementing incremental ThinLTO is a bit more involved than I initially thought, I'm splitting out some of the things that already work. This PR (1) adds a way accessing some ThinLTO information in `rustc` and (2) does some cleanup around CGU/object file naming (which makes things quite a bit nicer).

This is probably best reviewed one commit at a time.
2018-07-13 22:06:38 +00:00