about summary refs log tree commit diff
path: root/compiler/rustc_middle/src/ty/codec.rs
AgeCommit message (Collapse)AuthorLines
2021-01-16Can't use EncodableWithShorthand for PredicateJack Huey-19/+2
2021-01-16Review changesJack Huey-4/+4
2021-01-16CleanupJack Huey-1/+1
2021-01-16Remove PredicateKindJack Huey-4/+4
2021-01-17prevent potential bug in `encode_with_shorthand`.Bastian Kauschke-3/+3
2021-01-11Serialize incr comp structures to file via fixed-size bufferTyson Nottingham-16/+0
Reduce a large memory spike that happens during serialization by writing the incr comp structures to file by way of a fixed-size buffer, rather than an unbounded vector. Effort was made to keep the instruction count close to that of the previous implementation. However, buffered writing to a file inherently has more overhead than writing to a vector, because each write may result in a handleable error. To reduce this overhead, arrangements are made so that each LEB128-encoded integer can be written to the buffer with only one capacity and error check. Higher-level optimizations in which entire composite structures can be written with one capacity and error check are possible, but would require much more work. The performance is mostly on par with the previous implementation, with small to moderate instruction count regressions. The memory reduction is significant, however, so it seems like a worth-while trade-off.
2020-12-17Auto merge of #79945 - jackh726:existential_trait_ref, r=nikomatsakisbors-3/+7
Move binder for dyn to each list item This essentially changes `ty::Binder<&'tcx List<ExistentialTraitRef>>` to `&'tcx List<ty::Binder<ExistentialTraitRef>>`. This is a first step in moving the `dyn Trait` representation closer to Chalk, which we've talked about in `@rust-lang/wg-traits.` r? `@nikomatsakis`
2020-12-14Remove unused `TyEncoder::tcx` required methodLeSeulArtichaut-1/+0
2020-12-11Move binder for dyn to each list itemJack Huey-3/+7
2020-12-03Combination of commitsRich Kadel-2/+4
Fixes multiple issue with counters, with simplification Includes a change to the implicit else span in ast_lowering, so coverage of the implicit else no longer spans the `then` block. Adds coverage for unused closures and async function bodies. Fixes: #78542 Adding unreachable regions for known MIR missing from coverage map Cleaned up PR commits, and removed link-dead-code requirement and tests Coverage no longer depends on Issue #76038 (`-C link-dead-code` is no longer needed or enforced, so MSVC can use the same tests as Linux and MacOS now) Restrict adding unreachable regions to covered files Improved the code that adds coverage for uncalled functions (with MIR but not-codegenned) to avoid generating coverage in files not already included in the files with covered functions. Resolved last known issue requiring --emit llvm-ir workaround Fixed bugs in how unreachable code spans were added.
2020-11-12Add type to `ConstKind::Placeholder`varkor-1/+1
2020-10-14Remove unused code from rustc_middleest31-8/+0
2020-09-18support const_evaluatable_checked across crate boundariesBastian Kauschke-0/+20
2020-09-04Change ty.kind to a methodLeSeulArtichaut-1/+3
2020-08-30mv compiler to compiler/mark-0/+456