about summary refs log tree commit diff
path: root/src/librustc/session
AgeCommit message (Collapse)AuthorLines
2018-03-25librustc: Convert -C pgo-gen and -C pgo-use into -Z flags.Emilio Cobos Álvarez-20/+20
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2018-03-25session: Add two tracked, exclusive codegen options for PGO profile usage ↵Emilio Cobos Álvarez-0/+20
and generation. Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2018-03-24Add flag for telling the linker to strip debuginfo when building without itJohannes Löthberg-0/+2
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2018-03-25Rollup merge of #49122 - scottmcm:z-align-attr, r=cramertjkennytm-0/+2
Add a -Z flag for LLVM align attributes on arguments LLVM seems to still put the assume calls in when inlining, so this probably isn't in a place where it can be turned on by default, but it's interesting to experiment with. For example, this makes `mem::swap::<u64x8>` be 8x `vmovaps ymm` instead of 16x `vmovups xmm`, on my cpu.
2018-03-24Auto merge of #48482 - davidtwco:issue-47184, r=nikomatsakisbors-0/+2
NLL should identify and respect the lifetime annotations that the user wrote Part of #47184. r? @nikomatsakis
2018-03-22Added flag to disable user type assertion.David Wood-0/+2
2018-03-20rename epoch to editionKurtis Nusbaum-17/+17
2018-03-20Implement some trivial size_hints for various iteratorsPhlosioneer-0/+7
This also implements ExactSizeIterator where applicable. Addresses most of the Iterator traits mentioned in #23708.
2018-03-17Add a -Z flag for LLVM align attributes on argumentsScott McMurray-0/+2
LLVM seems to still put the assume calls in when inlining, so this probably isn't in a place where it can be turned on by default, but it's interesting to experiment with. For example, this makes `swap::<u64x8>` be 8x `vmovaps ymm` instead of 16x `vmovups xmm`, on my cpu.
2018-03-17AST/HIR: Clarify what the optional name in extern crate items meanVadim Petrochenkov-1/+1
2018-03-16Auto merge of #48896 - alexcrichton:bitcode-in-object, r=michaelwoeristerbors-0/+2
rustc: Enable embedding LLVM bitcode for iOS This commit updates rustc to embed bitcode in each object file generated by default when compiling for iOS. This was determined in #35968 as a step towards better compatibility with the iOS toolchain, so let's give it a spin and see how it turns out! Note that this also updates the `cc` dependency which should propagate this change of embedding bitcode for C dependencies as well.
2018-03-15Rollup merge of #48991 - jsgf:remap-path-prefix, r=estebankkennytm-1/+1
Clarify usage message for --remap-path-prefix.
2018-03-14Remove syntax and syntax_pos thread localsJohn Kåre Alsaker-26/+32
2018-03-13Clarify usage message for --remap-path-prefix.Jeremy Fitzhardinge-1/+1
2018-03-13rustc: Embed LLVM bitcode by default on iOSAlex Crichton-0/+2
This commit updates rustc to embed bitcode in each object file generated by default when compiling for iOS. This was determined in #35968 as a step towards better compatibility with the iOS toolchain, so let's give it a spin and see how it turns out! Note that this also updates the `cc` dependency which should propagate this change of embedding bitcode for C dependencies as well.
2018-03-13introduce `tcx.normalize_erasing_regions(..)` operaton [VIC]Niko Matsakis-0/+5
2018-03-13introduce `infcx.at(..).normalize(..)` operation [VIC]Niko Matsakis-0/+11
It is backed by the new `normalize_projection_ty` query, which uses canonicalization.
2018-03-13add `canonicalize` method to `InferCtxt` [VIC]Niko Matsakis-0/+5
2018-03-09Move PROFQ_CHAN to a Session fieldJohn Kåre Alsaker-1/+7
2018-03-08Move epochs to libsyntaxManish Goregaokar-55/+5
2018-03-08Rollup merge of #48682 - spastorino:make_causal_lazy, r=nikomatsakisManish Goregaokar-684/+1020
[NLL] Make causal tracking lazy Close #46590 cc @nikomatsakis
2018-03-08Const eval will oom together with rustc nowOliver Schneider-3/+0
2018-03-08Move the resource limits to the session in preparation for attributes ↵Oliver Schneider-0/+10
configuring them
2018-03-08Add InterpretInterner to StableHashingContext for AllocId serializationOliver Schneider-2/+2
2018-03-06Run rustfmt over modified filesSantiago Pastorino-675/+1020
2018-03-06Remove nll-dump-cause flag and always track causesSantiago Pastorino-9/+0
2018-03-05Fix some merge fallout.Michael Woerister-1/+1
2018-03-05Turn features() into a query.Michael Woerister-47/+19
2018-03-02Rollup merge of #48641 - alexcrichton:no-hash-l-paths, r=michaelwoeristerManish Goregaokar-120/+3
Fixes #47311. r? @nrc
2018-03-02Perform manual fixupsManish Goregaokar-1/+1
2018-03-02Run Rustfix on librustcManish Goregaokar-7/+7
2018-03-02Replace Rc with Lrc for shared dataJohn Kåre Alsaker-4/+5
2018-03-01rustc: More stable hashes of command line argumentsAlex Crichton-120/+3
Currently rustc isn't always the best at producing deterministic builds of a crate when the source directory of a crate is changed. This is happening due to what appears two different sources: * First the `-L` paths passed to rustc are hashed into the crate hash. These paths through Cargo are typically absolute paths that can vary if the build directory changes. * Next the paths passed to `--extern` are also hashed which like `-L` can change if the build directory changes. This commit fixes these two sources of nondeterminism by ensuring that avoiding tracking the hashes of these arguments on the command line. For `-L` paths they're either related to loading crates (whose hashes are tracked elsewhere) or native librarise used in the linking phase (which isn't incremental). The `--extern` paths are similar in that they're related to crate resolution which is already tracked independently of the command line arguments. Closes #48019
2018-02-28Rollup merge of #48461 - Manishearth:epoch-dyn-trait, r=nmatsakisManish Goregaokar-7/+60
Fixes #47311. r? @nrc
2018-02-28Rollup merge of #48359 - jsgf:remap-path-prefix, r=sanxiynManish Goregaokar-26/+21
Fixes #47311. r? @nrc
2018-02-26Fix rebaseVadim Petrochenkov-5/+6
2018-02-26Support flag `-Z ui-testing` for tweaking diagnostic output for UI testsVadim Petrochenkov-2/+6
2018-02-23Add ability for hardwired lints to operate on the diagnostic builderManish Goregaokar-1/+13
2018-02-23Allow future-incompat lints to mention an epochManish Goregaokar-1/+14
2018-02-22Add ToString and FromStr impls for EpochManish Goregaokar-5/+33
2018-02-22Implement --remap-path-prefixJeremy Fitzhardinge-26/+21
Remove experimental -Zremap-path-prefix-from/to, and replace it with the stabilized --remap-path-prefix=from=to variant. This is an implementation for issue of #41555.
2018-02-14Rollup merge of #48162 - michaelwoerister:stabler-svh, r=nikomatsakiskennytm-3/+3
Handle path prefix mapping in a more stable way when computing the crate hash This hopefully fixes issue https://github.com/rust-lang/rust/issues/48019. cc @luser @infinity0
2018-02-13Handle path prefix mapping in a more stable way when computing the crate hash.Michael Woerister-3/+3
2018-02-12rustc: Add the ability to not run dsymutilAlex Crichton-0/+2
This commit adds the ability for rustc to not run `dsymutil` by default on OSX. A new codegen option, `-Z run-dsymutil=no`, was added to specify that `dsymutil` should *not* run and instead the compiler should unconditionally keep the object files around in a compilation if necessary for debug information. cc #47240
2018-02-09Auto merge of #47489 - pnkfelix:limit-2pb-issue-46747, r=nikomatsakisbors-0/+2
NLL: Limit two-phase borrows to autoref-introduced borrows This imposes a restriction on two-phase borrows so that it only applies to autoref-introduced borrows. The goal is to ensure that our initial deployment of two-phase borrows is very conservative. We want it to still cover the `v.push(v.len());` example, but we do not want it to cover cases like `let imm = &v; let mu = &mut v; mu.push(imm.len());` (Why do we want it to be conservative? Because when you are not conservative, then the results you get, at least with the current analysis, are tightly coupled to details of the MIR construction that we would rather remain invisible to the end user.) Fix #46747 I decided, for this PR, to add a debug-flag `-Z two-phase-beyond-autoref`, to re-enable the more general approach. But my intention here is *not* that we would eventually turn on that debugflag by default; the main reason I added it was that I thought it was useful for writing tests to be able to write source that looks like desugared MIR.
2018-02-08Restrict two-phase borrows to solely borrows introduced via autoref.Felix S. Klock II-0/+2
Added `-Z two-phase-beyond-autoref` to bring back old behavior (mainly to allow demonstration of desugared examples). Updated tests to use aforementioned flag when necessary. (But in each case where I added the flag, I made sure to also include a revision without the flag so that one can readily see what the actual behavior we expect is for the initial deployment of NLL.)
2018-02-07Rollup merge of #48014 - Manishearth:stealing-chickens-on-the-internet, ↵Manish Goregaokar-3/+49
r=nikomatsakis Implement RFC 2052 (Epochs) This adds -Zepochs and uses it for tyvar_behind_raw_pointer (#46906) When we move this to --epoch=XXX, we'll need to gate the 2018 epoch on nightly, but not the 2015 one. I can make these changes here itself though it's kinda pointless given that the entire flag is nightly-only. r? @nikomatsakis @aturon cc #44581 (epoch tracking) cc #46906 (tyvar_behind_raw_pointer)
2018-02-06Auto merge of #47203 - varkor:output-filename-conflicts-with-directory, ↵bors-19/+0
r=estebank Warn when rustc output conflicts with existing directories When the compiled executable would conflict with a directory, display a rustc error instead of a verbose and potentially-confusing linker error. This is a usability improvement, and doesn’t actually change behaviour with regards to compilation success. This addresses the concern in #35887. Fixes #13098.
2018-02-05Add -ZepochManish Goregaokar-3/+49
2018-02-01Auto merge of #47540 - Manishearth:suggestion, r=nrcbors-2/+6
Add approximate suggestions for rustfix This adds `span_approximate_suggestion()` that lets you emit a suggestion marked as "non-machine applicable" in the JSON output. UI users see no difference. This is for when rustc and clippy wish to emit suggestions which will make sense to the reader (e.g. they may have placeholders like `<type>`) but are not source-applicable, so that rustfix/etc can ignore these. fixes #39254