@@ -559,30 +559,6 @@ compilers on hand while you're working.
559
559
0.0001 (100.0%) 0.0001 (100.0%) 0.0001 (100.0%) 0.0490 (100.0%) Total
560
560
```
561
561
562
- - `-Xfrontend -debug-time-compilation`: asks each frontend to print out timers
563
- for each phase of its execution. Its output (per-frontend) looks like this:
564
-
565
- ```
566
- ===-------------------------------------------------------------------------===
567
- Swift compilation
568
- ===-------------------------------------------------------------------------===
569
- Total Execution Time: 0.0876 seconds (0.0877 wall clock)
570
-
571
- ---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name ---
572
- 0.0241 ( 53.9%) 0.0394 ( 92.0%) 0.0635 ( 72.5%) 0.0635 ( 72.5%) Import resolution
573
- 0.0170 ( 38.0%) 0.0025 ( 5.8%) 0.0195 ( 22.3%) 0.0195 ( 22.2%) Type checking / Semantic analysis
574
- 0.0013 ( 3.0%) 0.0004 ( 0.8%) 0.0017 ( 1.9%) 0.0017 ( 1.9%) LLVM output
575
- 0.0010 ( 2.3%) 0.0003 ( 0.7%) 0.0013 ( 1.5%) 0.0013 ( 1.5%) SILGen
576
- 0.0006 ( 1.4%) 0.0002 ( 0.4%) 0.0008 ( 0.9%) 0.0008 ( 0.9%) IRGen
577
- 0.0004 ( 0.8%) 0.0000 ( 0.1%) 0.0004 ( 0.5%) 0.0004 ( 0.5%) SIL optimization
578
- 0.0002 ( 0.5%) 0.0001 ( 0.1%) 0.0003 ( 0.3%) 0.0003 ( 0.3%) LLVM optimization
579
- 0.0001 ( 0.1%) 0.0000 ( 0.1%) 0.0001 ( 0.1%) 0.0001 ( 0.1%) Parsing
580
- 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) SIL verification (pre-optimization)
581
- 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) SIL verification (post-optimization)
582
- 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) AST verification
583
- 0.0448 (100.0%) 0.0428 (100.0%) 0.0876 (100.0%) 0.0877 (100.0%) Total
584
- ```
585
-
586
562
- `-Xfrontend -debug-time-function-bodies`: asks each frontend to print out
587
563
the time spent typechecking _every function_ in the program, sorted by time
588
564
taken. The output is therefore voluminous, but can help when reducing a
@@ -1053,10 +1029,8 @@ getting slower between versions:
1053
1029
parameter of the script). Reconfirm that _just those two isolated frontend
1054
1030
processes_ still show the regression you're interested in isolating.
1055
1031
1056
- 6. Check high-level diagnostic output between the two compilers, either the
1057
- newer unified stats reporter (`-stats-output-dir`) or the older flags
1058
- (`-Xfrontend -debug-time-compilation` and friends). Comparing the two will
1059
- often guide the search.
1032
+ 6. Check the value of performance counters between the two compilers via the
1033
+ unified stats reporter (`-stats-output-dir`).
1060
1034
1061
1035
7. Run both frontend processes under a profiler and compare the profiles in
1062
1036
detail. At this point there ought to be _some_ sign of a difference, either
0 commit comments