about summary refs log tree commit diff
path: root/src/test/incremental
AgeCommit message (Collapse)AuthorLines
2016-09-14map create numbers between compilationsMikhail Modin-0/+62
2016-09-12Auto merge of #35960 - nikomatsakis:incr-comp-krate-edges, r=michaelwoeristerbors-0/+111
fix a few errant `Krate` edges Exploring the effect of small changes on `syntex` reuse, I discovered the following sources of unnecessary edges from `Krate` r? @michaelwoerister
2016-09-06Auto merge of #36025 - michaelwoerister:incr-comp-hash-spans, r=nikomatsakisbors-0/+194
incr. comp.: Take spans into account for ICH This PR makes the ICH (incr. comp. hash) take spans into account when debuginfo is enabled. A side-effect of this is that the SVH (which is based on the ICHs of all items in the crate) becomes sensitive to the tiniest change in a code base if debuginfo is enabled. Since we are not trying to model ABI compatibility via the SVH anymore (this is done via the crate disambiguator now), this should be not be a problem. Fixes #33888. Fixes #32753.
2016-09-06expanding a def-id is not a readNiko Matsakis-0/+46
Across crates only, converting a def-id into its def-key or def-path was considered a read. This caused spurious reads when computing the symbol name for some item.
2016-09-06allow testing DepNode::Krate edges directlyNiko Matsakis-5/+7
2016-09-06ignore dep-graph when loading inlined HIRNiko Matsakis-0/+29
We touch the krate to adjust the maps, but we don't expose that data widely.
2016-09-06write to inherent_impls during the visitorNiko Matsakis-0/+34
The goal here is to avoid writing to the `inherent_impls` map from within the general `Coherence` task, and instead write to it as we visit. Writing to it from the Coherence task is actually an information leak; it happened to be safe because Coherence read from `DepNode::Krate`, but that was very coarse. I removed the `Rc` here because, upon manual inspection, nobody clones the data in this table, and it meant that we can accumulate the data in place. That said, the pattern that is used for the inherent impls map is *generally* an anti-pattern (that is, holding the borrow lock for the duration of using the contents), so it'd probably be better to clone (and I doubt that would be expensive -- how many inherent impls does a typical type have?).
2016-09-03Fix rebase, fix some testsVadim Petrochenkov-1/+1
2016-09-01incr.comp. Add tests for stable span hashing.Michael Woerister-0/+194
2016-08-23fix stray commentNiko Matsakis-2/+1
2016-08-23consider DepNode::Krate to be an inputNiko Matsakis-0/+40
This seems not only more correct but allows us to write tests that check whether the krate hash as a whole is clean/dirty
2016-08-23add regression test for #35593Niko Matsakis-0/+21
Fixes #35593
2016-08-20compute and cache HIR hashes at beginningNiko Matsakis-8/+2
This avoids the compile-time overhead of computing them twice. It also fixes an issue where the hash computed after typeck is differen than the hash before, because typeck mutates the def-map in place. Fixes #35549. Fixes #35593.
2016-08-11Fix incremental/commandline-args test.Michael Woerister-1/+1
2016-08-11Save dep-tracking hash of commandline arguments in dep-graph file.Michael Woerister-0/+30
.. and use it to purge the incremental compilation cache if necessary.
2016-08-09incorporate resolve results into hashingNiko Matsakis-2/+138
We now incorporate the `def_map` and `trait_map` results into the SVH.
2016-08-09stop hashing nested items, and add a testNiko Matsakis-0/+36
2016-08-09use preds to serialize just what we needNiko Matsakis-6/+12
This massively speeds up serialization. It also seems to produce deterministic metadata hashes (before I was seeing inconsistent results). Fixes #35232.
2016-08-02watch out for krate numbers being reassignedNiko Matsakis-0/+44
The biggest problem, actually, is krate numbers being removed entirely, which can lead to array-index-out-of-bounds errors. cc #35123 -- not a complete fix, since really we ought to "map" the old crate numbers to the new ones, not just detect changes.
2016-08-02remap Hir(InlinedDefId) to MetaData(OriginalDefId)Niko Matsakis-0/+33
The way we do HIR inlining introduces reads of the "Hir" into the graph, but this Hir in fact belongs to other crates, so when we try to load later, we ICE because the Hir nodes in question don't belond to the crate (and we haven't done inlining yet). This pass rewrites those HIR nodes to the metadata from which the inlined HIR was loaded.
2016-08-01hash foreign items tooNiko Matsakis-0/+45
2016-07-28Keep multiple files per work-productNiko Matsakis-0/+63
In the older version, a `.o` and ` .bc` file were separate work-products. This newer version keeps, for each codegen-unit, a set of files of different kinds. We assume that if any kinds are available then all the kinds we need are available, since the precise set of switches will depend on attributes and command-line switches. Should probably test this: the effect of changing attributes in particular might not be successfully tracked?
2016-07-28Address mw nitsNiko Matsakis-10/+0
2016-07-28Add a testing mechanism and a simple spike testNiko Matsakis-0/+197
2016-05-31add def-ids from nominal types into TraitSelectNiko Matsakis-5/+5
This way we distinguish, in particular, `Foo: Sized` and `Bar: Sized`, which fixes #33850.
2016-05-31extend type alias test to include a clean revNiko Matsakis-1/+7
2016-05-31add a series of tests for changes to structsNiko Matsakis-0/+326
These tests reveal that the edges are in some cases too strict.
2016-05-18always make at least one codegen-unitNiko Matsakis-2/+0
this allows us to remove the dummy `foo` fn
2016-05-18basic tests for cross-crate hashingNiko Matsakis-0/+102
2016-04-06Fix test cases to reflect that #32014...went awayNiko Matsakis-4/+3
Not sure what was the bug. Fixes #32014.
2016-04-06add incremental test runner and some testsNiko Matsakis-0/+158