Commit graph

11714 commits

Author SHA1 Message Date
bors
fbc3642ef1 Auto merge of #45401 - zackmdavis:crate_shorthand_visibility_modifier, r=nikomatsakis
`crate` shorthand visibility modifier

cc #45388.

r? @nikomatsakis
2017-10-24 12:24:16 +00:00
bors
a789fa0440 Auto merge of #44984 - Maaarcocr:master, r=nikomatsakis
Create NormalizeTy query

As part of the effort to solve #44891,  I've created the normalize_ty query.

As outlined in the issue this meant:

- renamed `normalize_associated_type()` to `normalize_associated_type_in()`
- created the `normalize_ty` query
- substituted the use of memoize with the query

This PR is not ready. While running tests, one of the incremental ones failed. [This](https://pastebin.com/vGhH6bv6) is the error I got.
2017-10-24 03:55:22 +00:00
bors
336624735c Auto merge of #44766 - sunjay:lift_generics, r=nikomatsakis
Move Generics from MethodSig to TraitItem and ImplItem

As part of `rust-impl-period/WG-compiler-traits`, we want to "lift" `Generics` from `MethodSig` into `TraitItem` and `ImplItem`. This is in preparation for adding associated type generics. (https://github.com/rust-lang/rust/issues/44265#issuecomment-331172238)

Currently this change is only made in the AST. In the future, it may also impact the HIR. (Still discussing)

To understand this PR, it's probably best to start from the changes to `ast.rs` and then work your way to the other files to understand the far reaching effects of this change.

r? @nikomatsakis
2017-10-24 01:20:09 +00:00
Zack M. Davis
214b0f2293 crate shorthand visibility modifier
With regrets, this breaks rustfmt and rls.

This is in the matter of #45388.
2017-10-22 23:58:13 -07:00
Marco Concetto Rudilosso
5c51bf5297 renamed query 2017-10-21 22:50:21 +01:00
Marco Concetto Rudilosso
a3667d3209 anon NormalizeTy DepNode 2017-10-21 22:50:21 +01:00
Marco Concetto Rudilosso
20ae2d98c0 moved depnode 2017-10-21 22:50:21 +01:00
Marco Concetto Rudilosso
73c95431ee removed unused import 2017-10-21 22:50:21 +01:00
Marco Concetto Rudilosso
d870a96f28 trans_ -> fully_ prefix 2017-10-21 22:50:21 +01:00
Marco Concetto Rudilosso
69f5f0d193 added trans_ prefix and pluralised types. Solved failing test on the incremental test-suite. 2017-10-21 22:50:20 +01:00
Marco Concetto Rudilosso
96a006c186 added newlines at the end of the file and changed 'normalising' to 'normalizing' 2017-10-21 22:50:20 +01:00
Marco Concetto Rudilosso
113ebe4f1d Create NormalizeTy query 2017-10-21 22:50:15 +01:00
Alex Crichton
8197a0bbaf rustc: Move bytecode compression into codegen
This commit moves compression of the bytecode from the `link` module to the
`write` module, namely allowing it to be (a) cached by incremental compilation
and (b) produced in parallel. The parallelization may show up as some nice wins
during normal compilation and the caching in incremental mode should be
beneficial for incremental compiles! (no more need to recompress the entire
crate's bitcode on all builds)
2017-10-21 13:02:34 -07:00
Corey Farwell
260131d40b Rollup merge of #45407 - topecongiro:fix-typos/librust-hir-README, r=kennytm
Fix typos in README.md
2017-10-21 09:47:22 -04:00
bors
6a136f6783 Auto merge of #45364 - nikomatsakis:issue-44137-anon, r=michaelwoerister
make `erase_regions_ty` query anonymous

r? @michaelwoerister
2017-10-21 01:59:43 +00:00
topecongiro
a59282d8ed Fix typos in README.md 2017-10-20 17:45:08 +09:00
bors
c0956ff265 Auto merge of #45319 - michaelwoerister:use-128bit-siphash, r=nikomatsakis
incr.comp.: Use 128bit SipHash for fingerprinting

This PR switches incr. comp. result fingerprinting from 128 bit BLAKE2 to 128 bit SipHash. When we started using BLAKE2 for fingerprinting, the 128 bit version of SipHash was still experimental. Now that it isn't anymore we should be able to get a nice performance boost without significantly increasing collision probability.

~~I'm going to start a try-build for this, so we can gauge the performance impact before merging (hence the `WIP` in the title).~~

EDIT: Performance improvements look as expected. Tests seem to be passing.

Fixes #41215.
2017-10-20 07:50:18 +00:00
bors
c0e0a38101 Auto merge of #45316 - goffrie:exitable-breakable-block, r=nikomatsakis
Mark block exits as reachable if the block can break.

This only happens when desugaring `catch` expressions for now, but regular blocks (in HIR) can be broken from - respect that when doing reachability analysis.

Fixes #45124.
2017-10-20 05:24:04 +00:00
bors
354eb160e0 Auto merge of #45312 - theotherjimmy:refactor-ensure, r=michaelwoerister
Refactor `ensure` and `try_get_with`

There was a bit of code shared between `try_get_with` and `ensure`, after I
added `ensure`. I refactored that shared code into a query-agnostic method
called `read_node_index`.

The new method `read_node_index` will attempt to find the node
index (`DepNodeIndex`) of a query. When `read_node_index` finds the
`DepNodeIndex`, it marks the current query as a reader of the node it's
requesting the index of.

This is used by `try_get_with` and `ensure` as it elides the unimportant (to
them) details of if the query is invalidated by previous changed computation (Red)
or new and if they had to mark the query green. For both `try_get_with` and
`ensure`, they just need to know if they can lookup the results or have to
reevaluate.

@nikomatsakis this is the [refactor we discussed](https://github.com/rust-lang/rust/pull/45228#discussion_r144577392) in the comment thread of #45228
2017-10-20 02:27:16 +00:00
kennytm
dd41422b66
Rollup merge of #45377 - topecongiro:fix-typos/librustc-ty-README, r=kennytm
Fix typos in librustc/ty/README.md
2017-10-20 00:01:56 +08:00
topecongiro
622d20a85a Fix typos in librustc/ty/README.md 2017-10-19 13:29:12 +09:00
topecongiro
547743ec6a Fix typos in src/librustc/README.md 2017-10-19 08:49:07 +09:00
kennytm
0d4dbbab46 Rollup merge of #45325 - spastorino:first_statement_index_with_macro, r=nikomatsakis
Generate FirstStatementIndex using newtype_index macro
2017-10-19 01:59:51 +08:00
Niko Matsakis
b5e2451f62 make erase_regions_ty query anonymous 2017-10-18 11:21:45 -04:00
bors
7a4f39453c Auto merge of #44501 - nikomatsakis:issue-44137-non-query-data-in-tcx, r=eddyb
remove or encapsulate the remaining non-query data in tcx

I wound up removing the existing cache around inhabitedness since it didn't seem to be adding much value. I reworked const rvalue promotion, but not that much (i.e., I did not split the computation into bits, as @eddyb had tossed out as a suggestion). But it's now demand driven, at least.

cc @michaelwoerister -- see the `forbid_reads` change in last commit

r? @eddyb -- since the trickiest of this PR is the work on const rvalue promotion

cc #44137
2017-10-18 10:44:08 +00:00
Sunjay Varma
2095ac1e27 Fixed tidy errors 2017-10-17 22:14:14 -04:00
Sunjay Varma
bb30144605 Lifted generics into TraitItem and ImplItem from MethodSig -- HIR now matches AST 2017-10-17 22:14:14 -04:00
Sunjay Varma
f61394f0bd Lifting Generics from MethodSig to TraitItem and ImplItem since we want to support generics in each variant of TraitItem and ImplItem 2017-10-17 22:14:14 -04:00
Niko Matsakis
0e67d17358 make erase_regions use a query instead of an ad-hoc cache 2017-10-17 11:24:46 -04:00
Santiago Pastorino
b8f981a149 Generate FirstStatementIndex using newtype_index macro 2017-10-17 12:06:20 -03:00
kennytm
40d61f5982 Rollup merge of #45097 - nivkner:fixme_fixup2, r=estebank
address more FIXME whose associated issues were marked as closed

part of #44366
2017-10-17 22:20:55 +08:00
Jimmy Brisson
229bee3c38 Rename read_node_index to try_mark_green_and_read in plumbing
This should limit the availability of `try_mark_green_and_read` making
it harder to abuse.
2017-10-16 17:25:04 -05:00
Niko Matsakis
0ae18a18b4 bump up the recursion limit 2017-10-16 17:32:23 -04:00
Niko Matsakis
165cbce1cc fix nits 2017-10-16 17:32:23 -04:00
Niko Matsakis
47449ea513 add a function for testing if a ty is uninhabited from all modules
Desired by miri.
2017-10-16 17:32:22 -04:00
Niko Matsakis
0f568e2f34 convert constant promotion into a query 2017-10-16 17:32:22 -04:00
Niko Matsakis
5c26509405 restructure the public inhabitedness APIs and remove the cache
The cache was broken anyhow and this computation doesn't look that
expensive. These public accessors could potentially become queries,
but we'd have to add some more complex logic around lift. I'd prefer
to have some test cases to profile with before doing that.

Fixes #44402.
2017-10-16 17:32:21 -04:00
toidiu
98c6e0a02d fix function name 2017-10-16 14:26:18 -04:00
toidiu
ce754ba476 add a new dep node for outlives 2017-10-16 14:26:18 -04:00
toidiu
7c8a7221a4 create a seperate module for outlives. added a query for inferred_outlives. setup some files for upcoming tests 2017-10-16 14:26:11 -04:00
toidiu
32b968ce44 add inferred_outlives_of query 2017-10-16 14:24:59 -04:00
Michael Woerister
74ebad4b63 Use SipHasher128 in StableHasher. 2017-10-16 14:44:40 +02:00
Niko Matsakis
a5673de454 refactor inhabitedness to have clearer public entry points 2017-10-16 08:41:29 -04:00
Geoffry Song
57f03ea5ff Mark block exits as reachable if the block can break. 2017-10-15 21:19:00 -07:00
bors
fdec805d03 Auto merge of #45283 - alexcrichton:used-mut-nodes, r=arielb1
rustc: Remove `used_mut_nodes` from `TyCtxt`

This updates the borrowck query to return a result, and this result is then used
to incrementally check for unused mutable nodes given sets of all the used
mutable nodes.

Closes #42384
2017-10-16 03:02:05 +00:00
Jimmy Brisson
549f8553dc Refactor ensure and try_get_with into read_node_index
There was a bit of code shared between `try_get_with` and `ensure`, after I
added `ensure`. I refactored that shared code into a query-agnostic method
called `read_node_index`.

The new method `read_node_index` will attempt to find the node
index (`DepNodeIndex`) of a query. When `read_node_index` finds the
`DepNodeIndex`, it marks the current query as a reader of the node it's
requesting the index of.

This is used by `try_get_with` and `ensure` as it elides the unimportant (to
them) details of if the query is invalidated by previous changed computation (Red)
or new and if they had to mark the query green. For both `try_get_with` and
`ensure`, they just need to know if they can lookup the results or have to
reevaluate.
2017-10-15 14:36:07 -05:00
bors
2689fd2402 Auto merge of #45228 - theotherjimmy:ensure-query, r=michaelwoerister
incr.comp.: Introduce `ensure` and `ensure` typeck_tables_of

Resolves #45210

In this Pull Request we introduce the `ensure` query/function. `ensure` has the
semantics and type of the function `Q1` below:
```rust
fn Q1::ensure(K){
    Q(K);
}
```
Further, `ensure` avoids the need to load the result from disk (or execute the
provider, if we are not storing the results of Q to disk).

@nikomatsakis
2017-10-15 14:00:39 +00:00
Alex Crichton
4df1278c69 rustc: Remove used_mut_nodes from TyCtxt
This updates the borrowck query to return a result, and this result is then used
to incrementally check for unused mutable nodes given sets of all the used
mutable nodes.

Closes #42384
2017-10-14 09:29:02 -07:00
Vadim Petrochenkov
e6115af4bd Implement dyn Trait syntax 2017-10-14 12:51:13 +03:00
bors
3037965b5b Auto merge of #45137 - theotherjimmy:vtable-methods-query, r=nikomatsakis
Queryify Vtable methods

This query might come with a downside: It converts an iterator to a Vec, which may increase the working set of rustc on programs that use many many traits (I think that's where this is used).
2017-10-14 06:34:20 +00:00