Auto merge of #86695 - sexxi-goose:closure_size, r=nikomatsakis
Introduce -Zprofile-closures to evaluate the impact of 2229
This creates a CSV with name "closure_profile_XXXXX.csv", where the
variable part is the process id of the compiler.
To profile a cargo project you can run one of the following depending on
if you're compiling a library or a binary:
```
cargo +nightly rustc --lib -- -Zprofile-closures
cargo +nightly rustc --bin {binary_name} -- -Zprofile-closures
```
r? `@nikomatsakis`
This commit is contained in:
@@ -175,6 +175,25 @@ pub enum Visibility {
|
||||
Invisible,
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Clone,
|
||||
Debug,
|
||||
PartialEq,
|
||||
Eq,
|
||||
Copy,
|
||||
Hash,
|
||||
TyEncodable,
|
||||
TyDecodable,
|
||||
HashStable,
|
||||
TypeFoldable
|
||||
)]
|
||||
pub struct ClosureSizeProfileData<'tcx> {
|
||||
/// Tuple containing the types of closure captures before the feature `capture_disjoint_fields`
|
||||
pub before_feature_tys: Ty<'tcx>,
|
||||
/// Tuple containing the types of closure captures after the feature `capture_disjoint_fields`
|
||||
pub after_feature_tys: Ty<'tcx>,
|
||||
}
|
||||
|
||||
pub trait DefIdTree: Copy {
|
||||
fn parent(self, id: DefId) -> Option<DefId>;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user