[all-commits] [llvm/llvm-project] 12c662: [BOLT][Utils] Add nfc-stat-parser.py (#71979)

Amir Ayupov via All-commits all-commits at lists.llvm.org
Sat Nov 11 15:39:29 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 12c66251ad1f64fef134fee3d0cff7fa8492d175
      https://github.com/llvm/llvm-project/commit/12c66251ad1f64fef134fee3d0cff7fa8492d175
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2023-11-11 (Sat, 11 Nov 2023)

  Changed paths:
    A bolt/utils/nfc-stat-parser.py

  Log Message:
  -----------
  [BOLT][Utils] Add nfc-stat-parser.py (#71979)

Add a utility to parse output from llvm-bolt-wrapper script and
detect individual and aggregate time/memory swings. The wrapper reports
wall time and peak RSS for each BOLT invocation.

Exit code:
The utility exits with non-zero exit code if any individual test has
time or memory swing larger than `threshold_single` (default 10%), or
the aggregate (geometric mean) swing larger than `threshold_agg`
(default 5%). Short tests where BOLT wall time is less than
`check_longer_than` seconds (default 0.5s) are excluded from threshold
calculation.

Output:
The script prints test results exceeding the individual threshold, and
geomean values if it exceeds aggregate results. In `--verbose` mode all
individual results are printed (short time results are marked with '?').

Example usage:
```
$ cd ~/llvm-build # build folder where NFC testing was invoked
$ python3 ~/llvm-project/bolt/utils/nfc-stat-parser.py \
  --check_longer_than 0.1 `find -name timing.log`
./tools/bolt/test/runtime/X86/exceptions-pic.test/ -88.46% -0.13%
Geomean -19.78% +0.37%
$ echo $?
1
```




More information about the All-commits mailing list