rust/src/librustc_data_structures
bors c4f1304935 Auto merge of #66408 - nnethercote:greedy-process_obligations, r=nmatsakis
Make `process_obligations()` greedier.

`process_obligations()` adds new nodes, but it does not process these
new nodes until the next time it is called.

This commit changes it so that it does process these new nodes within
the same call. This change reduces the number of calls to
`process_obligations()` required to complete processing, sometimes
giving significant speed-ups.

The change required some changes to tests.
- The output of `cycle-cache-err-60010.rs` is slightly different.
- The unit tests required extra cases to handle the earlier processing
  of the added nodes. I mostly did these in the simplest possible way,
  by making the added nodes be ignored, thus giving outcomes the same as
  with the old behaviour. But I changed `success_in_grandchildren()`
  more extensively so that some obligations are completed earlier than
  they used to be.

r? @nikomatsakis
2019-12-04 14:33:38 +00:00
..
base_n librustc_data_structures: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
binary_search_util librustc_data_structures: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
graph Undo minor changes that weren't needed, fix one lifetime typo 2019-12-02 08:38:16 -05:00
obligation_forest Make process_obligations() greedier. 2019-11-15 08:33:39 +11:00
owning_ref Add lint for unnecessary parens around types 2019-10-29 18:11:12 +00:00
sip128 librustc_data_structures: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
small_c_str librustc_data_structures: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
snapshot_map Remove unnecessary Hash bounds from various types. 2019-10-21 13:48:20 +11:00
sorted_map
tiny_list add contains benchmarks 2019-08-13 21:55:55 +02:00
transitive_relation librustc_data_structures: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
base_n.rs librustc_data_structures: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
box_region.rs
Cargo.toml Move self-profile infrastructure to data structures 2019-11-12 12:48:04 -05:00
const_cstr.rs
fingerprint.rs Switch over all StableHash impls to new format 2019-09-28 11:47:36 -04:00
flock.rs rustdoc: Don't panic when failing to write .lock file 2019-11-23 02:08:10 +00:00
fx.rs
jobserver.rs Re-export Client from rustc_data_structures::jobserver 2019-12-03 12:19:16 -05:00
lib.rs Move self-profile infrastructure to data structures 2019-11-12 12:48:04 -05:00
macros.rs
profiling.rs Register queries with self profiler in rustc_interface 2019-11-12 13:13:14 -05:00
ptr_key.rs
sharded.rs Avoid hashing the key twice in get_query(). 2019-11-04 10:15:55 +11:00
sip128.rs librustc_data_structures: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
small_c_str.rs librustc_data_structures: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
sorted_map.rs
stable_hasher.rs Fix spelling typos 2019-11-26 22:19:54 -05:00
stable_map.rs data_structures: Add deterministic FxHashMap and FxHashSet wrappers 2019-09-28 14:35:20 +05:30
stable_set.rs data_structures: Add deterministic FxHashMap and FxHashSet wrappers 2019-09-28 14:35:20 +05:30
svh.rs Switch over all StableHash impls to new format 2019-09-28 11:47:36 -04:00
sync.rs Fix outdated rustdoc of Once::init_locking function 2019-10-31 10:06:14 -03:00
thin_vec.rs Remove many unnecessary trait derivations. 2019-10-21 20:59:18 +11:00
tiny_list.rs Remove many unnecessary trait derivations. 2019-10-21 20:59:18 +11:00
transitive_relation.rs Remove many unnecessary trait derivations. 2019-10-21 20:59:18 +11:00
vec_linked_list.rs remove indexed_vec re-export from rustc_data_structures 2019-09-29 16:48:31 +00:00
work_queue.rs remove indexed_vec re-export from rustc_data_structures 2019-09-29 16:48:31 +00:00