llvm-project/llvm/docs/CommandGuide
David Zarzycki 1d297f9064 [lit] Sort test start times based on prior test timing data
Lit as it exists today has three hacks that allow users to run tests earlier:

1) An entire test suite can set the `is_early` boolean.
2) A very recently introduced "early_tests" feature.
3) The `--incremental` flag forces failing tests to run first.

All of these approaches have problems.

1) The `is_early` feature was until very recently undocumented. Nevertheless it still lacks testing and is a imprecise way of optimizing test starting times.
2) The `early_tests` feature requires manual updates and doesn't scale.
3) `--incremental` is undocumented, untested, and it requires modifying the *source* file system by "touching" the file. This "touch" based approach is arguably a hack because it confuses editors (because it looks like the test was modified behind the back of the editor) and "touching" the test source file doesn't work if the test suite is read only from the perspective of `lit` (via advanced filesystem/build tricks).

This patch attempts to simplify and address all of the above problems.

This patch formalizes, documents, tests, and defaults lit to recording the execution time of tests and then reordering all tests during the next execution. By reordering the tests, high core count machines run faster, sometimes significantly so.

This patch also always runs failing tests first, which is a positive user experience win for those that didn't know about the hidden `--incremental` flag.

Finally, if users want, they can _optionally_ commit the test timing data (or a subset thereof) back to the repository to accelerate bots and first-time runs of the test suite.

Reviewed By: jhenderson, yln

Differential Revision: https://reviews.llvm.org/D98179
2021-03-16 05:23:04 -04:00
..
FileCheck.rst [FileCheck] Add support for hex alternate form in FileCheck 2021-03-12 18:14:17 +00:00
bugpoint.rst
dsymutil.rst Fix typo in dsymutil.rst 2020-09-10 09:46:10 -07:00
index.rst [llvm-profgen] [docs] Fix invalid header. Add to ToC. NFC. 2020-11-26 10:45:05 +01:00
lit.rst [lit] Sort test start times based on prior test timing data 2021-03-16 05:23:04 -04:00
llc.rst [llc] (almost) remove `--print-machineinstrs` 2020-07-20 10:43:28 -07:00
lli.rst [llc] (almost) remove `--print-machineinstrs` 2020-07-20 10:43:28 -07:00
llvm-addr2line.rst llvm-addr2line: assume addresses on the command line are hexadecimal rather than attempting to guess the base based on the form of the number. 2020-04-16 16:16:21 -07:00
llvm-ar.rst
llvm-as.rst
llvm-bcanalyzer.rst
llvm-config.rst
llvm-cov.rst [docs/Coverage] Document -show-region-summary 2021-02-12 12:05:45 -08:00
llvm-cxxfilt.rst [docs][llvm-cxxfilt] Document --no-strip-underscore option 2020-05-01 11:03:06 +01:00
llvm-cxxmap.rst
llvm-diff.rst
llvm-dis.rst
llvm-dwarfdump.rst [docs][llvm-dwarfdump] Fix the warnings during docs-llvm-html buil 2020-06-25 11:04:28 +02:00
llvm-exegesis-analysis.png
llvm-exegesis.rst [llvm-exegesis][doc] Remove old FIXME. 2020-10-28 10:53:23 +01:00
llvm-extract.rst [docs] Fix typos 2020-08-09 19:31:49 -07:00
llvm-install-name-tool.rst [llvm] Fix typos in documentation (NFC) 2021-02-27 10:09:23 -08:00
llvm-lib.rst
llvm-libtool-darwin.rst [llvm-libtool] Emit warnings for files without symbols 2021-02-16 17:52:12 -08:00
llvm-link.rst
llvm-lipo.rst doc: use the right url to bugzilla 2020-03-22 22:49:40 +01:00
llvm-locstats.rst
llvm-mca.rst [MCA] Add support for in-order CPUs 2021-03-04 14:08:19 +03:00
llvm-nm.rst llvm-nm: add flag to suppress no symbols warning 2021-03-07 16:20:13 -08:00
llvm-objcopy.rst [docs] Fix llvm-objcopy.rst 2021-03-08 19:06:32 -08:00
llvm-objdump.rst [llvm-objdump][MachO] Add support for dumping function starts 2021-03-08 18:44:44 -08:00
llvm-pdbutil.rst
llvm-profdata.rst Supplement instr profile with sample profile. 2020-07-27 20:17:40 -07:00
llvm-profgen.rst [CSSPGO][llvm-profgen] Context-sensitive profile data generation 2020-12-07 13:48:58 -08:00
llvm-ranlib.rst
llvm-readelf.rst [llvm-readelf] Support dumping the BB address map section with --bb-addr-map. 2021-03-08 16:20:11 -08:00
llvm-readobj.rst [llvm-readelf] Support dumping the BB address map section with --bb-addr-map. 2021-03-08 16:20:11 -08:00
llvm-size.rst doc: use the right url to bugzilla 2020-03-22 22:49:40 +01:00
llvm-stress.rst
llvm-strings.rst doc: use the right url to bugzilla 2020-03-22 22:49:40 +01:00
llvm-strip.rst [llvm-objcopy][llvm-strip] Improve --discard-all documentation and help 2021-03-04 10:25:35 +00:00
llvm-symbolizer.rst [llvm-symbolizer][doc] Reorder --relativenames in options list 2021-01-20 11:50:00 +00:00
locstats-compare.png
locstats-draw-plot.png
opt.rst
tblgen.rst [Clang][RISCV] Add custom TableGen backend for riscv-vector intrinsics. 2021-03-10 18:43:43 -08:00