summary refs log tree commit diff
path: root/src/librustc/session
AgeCommit message (Collapse)AuthorLines
2018-04-17Don't abort const eval due to long running evals, just warnOliver Schneider-3/+0
2018-03-31Auto merge of #49201 - Phlosioneer:add-trivial-size-hints, r=SimonSapinbors-0/+7
Implement some trivial size_hints for various iterators This also implements ExactSizeIterator where applicable. Addresses most of the Iterator traits mentioned in #23708. I intend to do more, but I don't want to make the PR too large.
2018-03-28Auto merge of #49019 - phil-opp:target-spec, r=pnkfelixbors-11/+26
Introduce a TargetTriple enum to support absolute target paths This PR replaces target triple strings with a `TargetTriple` enum, which represents either a target triple or a path to a JSON target file. The path variant is used if the `--target` argument has a `.json` extension, else the target triple variant is used. The motivation of this PR is support for absolute target paths to avoid the need for setting the `RUST_TARGET_PATH` environment variable (see rust-lang/cargo#4905 for more information). For places where some kind of triple is needed (e.g. in the sysroot folder), we use the file name (without extension). For compatibility, we keep the old behavior of searching for a file named `$(target_triple).json` in `RUST_TARGET_PATH` for non-official target triples.
2018-03-26Canonicalize pathsPhilipp Oppermann-2/+8
2018-03-26Introduce a TargetTriple enum to support absolute target pathsPhilipp Oppermann-10/+19
2018-03-26Auto merge of #48346 - emilio:pgo, r=alexcrichtonbors-0/+23
Add basic PGO support. This PR adds two mutually exclusive options for profile usage and generation using LLVM's instruction profile generation (the same as clang uses), `-C pgo-use` and `-C pgo-gen`. See each commit for details.
2018-03-25Auto merge of #49212 - kyrias:strip-debug-no-debuginfo, r=michaelwoeristerbors-0/+2
Pass --strip-debug to GccLinker when building without debuginfo C.f. #46034 --- This brings a hello-world built by passing rustc no command line options from 2.9M to 592K on Linux. (This might need to special case MacOS or Windows, not sure if the linkers there support `--strip-debug`, and there is an annoying lack of dependable docs for the linkers there.)
2018-03-25librustc_trans: Gate the preinliner with another -Z flag.Emilio Cobos Álvarez-0/+3
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
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