Skip to content

Commit b7150d4

Browse files
authored
Rollup merge of #141943 - nnethercote:rm-pre-expansion-ast-stats, r=compiler-errors
Remove pre-expansion AST stats. They're very little value, because they only measure the top-level `main.rs` or `lib.rs` file. (Other `.rs` files don't get read and parsed until expansion occurs.) I saw an example recently where the pre-expansion AST was 3KB in size and the post-expansion AST was 66MB. I kept the "POST EXPANSION" in the output header, I think that's useful information to avoid possible confusion about when the measurement happens. r? `@davidtwco`
2 parents c8a0f69 + 02a86db commit b7150d4

File tree

2 files changed

+61
-122
lines changed

2 files changed

+61
-122
lines changed

compiler/rustc_interface/src/passes.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,6 @@ pub fn parse<'a>(sess: &'a Session) -> ast::Crate {
6060
guar.raise_fatal();
6161
});
6262

63-
if sess.opts.unstable_opts.input_stats {
64-
input_stats::print_ast_stats(&krate, "PRE EXPANSION AST STATS", "ast-stats-1");
65-
}
66-
6763
rustc_builtin_macros::cmdline_attrs::inject(
6864
&mut krate,
6965
&sess.psess,
@@ -298,7 +294,7 @@ fn early_lint_checks(tcx: TyCtxt<'_>, (): ()) {
298294
let mut lint_buffer = resolver.lint_buffer.steal();
299295

300296
if sess.opts.unstable_opts.input_stats {
301-
input_stats::print_ast_stats(krate, "POST EXPANSION AST STATS", "ast-stats-2");
297+
input_stats::print_ast_stats(krate, "POST EXPANSION AST STATS", "ast-stats");
302298
}
303299

304300
// Needs to go *after* expansion to be able to check the results of macro expansion.

tests/ui/stats/input-stats.stderr

Lines changed: 60 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -1,120 +1,63 @@
1-
ast-stats-1 PRE EXPANSION AST STATS
2-
ast-stats-1 Name Accumulated Size Count Item Size
3-
ast-stats-1 ----------------------------------------------------------------
4-
ast-stats-1 Crate 40 (NN.N%) 1 40
5-
ast-stats-1 GenericArgs 40 (NN.N%) 1 40
6-
ast-stats-1 - AngleBracketed 40 (NN.N%) 1
7-
ast-stats-1 ExprField 48 (NN.N%) 1 48
8-
ast-stats-1 Attribute 64 (NN.N%) 2 32
9-
ast-stats-1 - DocComment 32 (NN.N%) 1
10-
ast-stats-1 - Normal 32 (NN.N%) 1
11-
ast-stats-1 WherePredicate 72 (NN.N%) 1 72
12-
ast-stats-1 - BoundPredicate 72 (NN.N%) 1
13-
ast-stats-1 ForeignItem 80 (NN.N%) 1 80
14-
ast-stats-1 - Fn 80 (NN.N%) 1
15-
ast-stats-1 Arm 96 (NN.N%) 2 48
16-
ast-stats-1 Local 96 (NN.N%) 1 96
17-
ast-stats-1 FnDecl 120 (NN.N%) 5 24
18-
ast-stats-1 Param 160 (NN.N%) 4 40
19-
ast-stats-1 Stmt 160 (NN.N%) 5 32
20-
ast-stats-1 - Let 32 (NN.N%) 1
21-
ast-stats-1 - MacCall 32 (NN.N%) 1
22-
ast-stats-1 - Expr 96 (NN.N%) 3
23-
ast-stats-1 Block 192 (NN.N%) 6 32
24-
ast-stats-1 FieldDef 208 (NN.N%) 2 104
25-
ast-stats-1 Variant 208 (NN.N%) 2 104
26-
ast-stats-1 AssocItem 320 (NN.N%) 4 80
27-
ast-stats-1 - Fn 160 (NN.N%) 2
28-
ast-stats-1 - Type 160 (NN.N%) 2
29-
ast-stats-1 GenericBound 352 (NN.N%) 4 88
30-
ast-stats-1 - Trait 352 (NN.N%) 4
31-
ast-stats-1 GenericParam 480 (NN.N%) 5 96
32-
ast-stats-1 Pat 504 (NN.N%) 7 72
33-
ast-stats-1 - Struct 72 (NN.N%) 1
34-
ast-stats-1 - Wild 72 (NN.N%) 1
35-
ast-stats-1 - Ident 360 (NN.N%) 5
36-
ast-stats-1 Expr 576 (NN.N%) 8 72
37-
ast-stats-1 - Match 72 (NN.N%) 1
38-
ast-stats-1 - Path 72 (NN.N%) 1
39-
ast-stats-1 - Struct 72 (NN.N%) 1
40-
ast-stats-1 - Lit 144 (NN.N%) 2
41-
ast-stats-1 - Block 216 (NN.N%) 3
42-
ast-stats-1 PathSegment 744 (NN.N%) 31 24
43-
ast-stats-1 Ty 896 (NN.N%) 14 64
44-
ast-stats-1 - Ptr 64 (NN.N%) 1
45-
ast-stats-1 - Ref 64 (NN.N%) 1
46-
ast-stats-1 - ImplicitSelf 128 (NN.N%) 2
47-
ast-stats-1 - Path 640 (NN.N%) 10
48-
ast-stats-1 Item 1_296 (NN.N%) 9 144
49-
ast-stats-1 - Enum 144 (NN.N%) 1
50-
ast-stats-1 - ForeignMod 144 (NN.N%) 1
51-
ast-stats-1 - Impl 144 (NN.N%) 1
52-
ast-stats-1 - Trait 144 (NN.N%) 1
53-
ast-stats-1 - Fn 288 (NN.N%) 2
54-
ast-stats-1 - Use 432 (NN.N%) 3
55-
ast-stats-1 ----------------------------------------------------------------
56-
ast-stats-1 Total 6_752 116
57-
ast-stats-1
58-
ast-stats-2 POST EXPANSION AST STATS
59-
ast-stats-2 Name Accumulated Size Count Item Size
60-
ast-stats-2 ----------------------------------------------------------------
61-
ast-stats-2 Crate 40 (NN.N%) 1 40
62-
ast-stats-2 GenericArgs 40 (NN.N%) 1 40
63-
ast-stats-2 - AngleBracketed 40 (NN.N%) 1
64-
ast-stats-2 ExprField 48 (NN.N%) 1 48
65-
ast-stats-2 WherePredicate 72 (NN.N%) 1 72
66-
ast-stats-2 - BoundPredicate 72 (NN.N%) 1
67-
ast-stats-2 ForeignItem 80 (NN.N%) 1 80
68-
ast-stats-2 - Fn 80 (NN.N%) 1
69-
ast-stats-2 Arm 96 (NN.N%) 2 48
70-
ast-stats-2 Local 96 (NN.N%) 1 96
71-
ast-stats-2 FnDecl 120 (NN.N%) 5 24
72-
ast-stats-2 InlineAsm 120 (NN.N%) 1 120
73-
ast-stats-2 Attribute 128 (NN.N%) 4 32
74-
ast-stats-2 - DocComment 32 (NN.N%) 1
75-
ast-stats-2 - Normal 96 (NN.N%) 3
76-
ast-stats-2 Param 160 (NN.N%) 4 40
77-
ast-stats-2 Stmt 160 (NN.N%) 5 32
78-
ast-stats-2 - Let 32 (NN.N%) 1
79-
ast-stats-2 - Semi 32 (NN.N%) 1
80-
ast-stats-2 - Expr 96 (NN.N%) 3
81-
ast-stats-2 Block 192 (NN.N%) 6 32
82-
ast-stats-2 FieldDef 208 (NN.N%) 2 104
83-
ast-stats-2 Variant 208 (NN.N%) 2 104
84-
ast-stats-2 AssocItem 320 (NN.N%) 4 80
85-
ast-stats-2 - Fn 160 (NN.N%) 2
86-
ast-stats-2 - Type 160 (NN.N%) 2
87-
ast-stats-2 GenericBound 352 (NN.N%) 4 88
88-
ast-stats-2 - Trait 352 (NN.N%) 4
89-
ast-stats-2 GenericParam 480 (NN.N%) 5 96
90-
ast-stats-2 Pat 504 (NN.N%) 7 72
91-
ast-stats-2 - Struct 72 (NN.N%) 1
92-
ast-stats-2 - Wild 72 (NN.N%) 1
93-
ast-stats-2 - Ident 360 (NN.N%) 5
94-
ast-stats-2 Expr 648 (NN.N%) 9 72
95-
ast-stats-2 - InlineAsm 72 (NN.N%) 1
96-
ast-stats-2 - Match 72 (NN.N%) 1
97-
ast-stats-2 - Path 72 (NN.N%) 1
98-
ast-stats-2 - Struct 72 (NN.N%) 1
99-
ast-stats-2 - Lit 144 (NN.N%) 2
100-
ast-stats-2 - Block 216 (NN.N%) 3
101-
ast-stats-2 PathSegment 864 (NN.N%) 36 24
102-
ast-stats-2 Ty 896 (NN.N%) 14 64
103-
ast-stats-2 - Ptr 64 (NN.N%) 1
104-
ast-stats-2 - Ref 64 (NN.N%) 1
105-
ast-stats-2 - ImplicitSelf 128 (NN.N%) 2
106-
ast-stats-2 - Path 640 (NN.N%) 10
107-
ast-stats-2 Item 1_584 (NN.N%) 11 144
108-
ast-stats-2 - Enum 144 (NN.N%) 1
109-
ast-stats-2 - ExternCrate 144 (NN.N%) 1
110-
ast-stats-2 - ForeignMod 144 (NN.N%) 1
111-
ast-stats-2 - Impl 144 (NN.N%) 1
112-
ast-stats-2 - Trait 144 (NN.N%) 1
113-
ast-stats-2 - Fn 288 (NN.N%) 2
114-
ast-stats-2 - Use 576 (NN.N%) 4
115-
ast-stats-2 ----------------------------------------------------------------
116-
ast-stats-2 Total 7_416 127
117-
ast-stats-2
1+
ast-stats POST EXPANSION AST STATS
2+
ast-stats Name Accumulated Size Count Item Size
3+
ast-stats ----------------------------------------------------------------
4+
ast-stats Crate 40 (NN.N%) 1 40
5+
ast-stats GenericArgs 40 (NN.N%) 1 40
6+
ast-stats - AngleBracketed 40 (NN.N%) 1
7+
ast-stats ExprField 48 (NN.N%) 1 48
8+
ast-stats WherePredicate 72 (NN.N%) 1 72
9+
ast-stats - BoundPredicate 72 (NN.N%) 1
10+
ast-stats ForeignItem 80 (NN.N%) 1 80
11+
ast-stats - Fn 80 (NN.N%) 1
12+
ast-stats Arm 96 (NN.N%) 2 48
13+
ast-stats Local 96 (NN.N%) 1 96
14+
ast-stats FnDecl 120 (NN.N%) 5 24
15+
ast-stats InlineAsm 120 (NN.N%) 1 120
16+
ast-stats Attribute 128 (NN.N%) 4 32
17+
ast-stats - DocComment 32 (NN.N%) 1
18+
ast-stats - Normal 96 (NN.N%) 3
19+
ast-stats Param 160 (NN.N%) 4 40
20+
ast-stats Stmt 160 (NN.N%) 5 32
21+
ast-stats - Let 32 (NN.N%) 1
22+
ast-stats - Semi 32 (NN.N%) 1
23+
ast-stats - Expr 96 (NN.N%) 3
24+
ast-stats Block 192 (NN.N%) 6 32
25+
ast-stats FieldDef 208 (NN.N%) 2 104
26+
ast-stats Variant 208 (NN.N%) 2 104
27+
ast-stats AssocItem 320 (NN.N%) 4 80
28+
ast-stats - Fn 160 (NN.N%) 2
29+
ast-stats - Type 160 (NN.N%) 2
30+
ast-stats GenericBound 352 (NN.N%) 4 88
31+
ast-stats - Trait 352 (NN.N%) 4
32+
ast-stats GenericParam 480 (NN.N%) 5 96
33+
ast-stats Pat 504 (NN.N%) 7 72
34+
ast-stats - Struct 72 (NN.N%) 1
35+
ast-stats - Wild 72 (NN.N%) 1
36+
ast-stats - Ident 360 (NN.N%) 5
37+
ast-stats Expr 648 (NN.N%) 9 72
38+
ast-stats - InlineAsm 72 (NN.N%) 1
39+
ast-stats - Match 72 (NN.N%) 1
40+
ast-stats - Path 72 (NN.N%) 1
41+
ast-stats - Struct 72 (NN.N%) 1
42+
ast-stats - Lit 144 (NN.N%) 2
43+
ast-stats - Block 216 (NN.N%) 3
44+
ast-stats PathSegment 864 (NN.N%) 36 24
45+
ast-stats Ty 896 (NN.N%) 14 64
46+
ast-stats - Ptr 64 (NN.N%) 1
47+
ast-stats - Ref 64 (NN.N%) 1
48+
ast-stats - ImplicitSelf 128 (NN.N%) 2
49+
ast-stats - Path 640 (NN.N%) 10
50+
ast-stats Item 1_584 (NN.N%) 11 144
51+
ast-stats - Enum 144 (NN.N%) 1
52+
ast-stats - ExternCrate 144 (NN.N%) 1
53+
ast-stats - ForeignMod 144 (NN.N%) 1
54+
ast-stats - Impl 144 (NN.N%) 1
55+
ast-stats - Trait 144 (NN.N%) 1
56+
ast-stats - Fn 288 (NN.N%) 2
57+
ast-stats - Use 576 (NN.N%) 4
58+
ast-stats ----------------------------------------------------------------
59+
ast-stats Total 7_416 127
60+
ast-stats
11861
hir-stats HIR STATS
11962
hir-stats Name Accumulated Size Count Item Size
12063
hir-stats ----------------------------------------------------------------

0 commit comments

Comments
 (0)