forked from OSchip/llvm-project
1 Commits
Author | SHA1 | Message | Date |
---|---|---|---|
Amir Ayupov | c2a961e414 |
[BOLT] Imported llvm-bolt-wrapper script
Commit history in chronological order: [BOLT] llvm-bolt-wrapper: added wrapper for bolt binary matching Summary: Wrapper to compare two versions of BOLT to see if they produce the same output binary given the same input. (cherry picked from FBD26626137) [BOLT] llvm-bolt-wrapper: support for no-output tests and heatmap mode Summary: - Added an option `skip_binary_cmp` to support invocations that don't output a binary - Minor fixes for heatmap mode, timeout, log comparison - Rearranged in-line config example to be copy-pasteable (cherry picked from FBD26822016) [BOLT] llvm-bolt-wrapper: merge stdout/stderr, search for config in script dir (cherry picked from FBD27529335) [BOLT] llvm-bolt-wrapper: handle /dev/null Summary: Fixed the wrapper to preserve `-o /dev/null` and skip binary matching for such invocations. (cherry picked from FBD28013747) [BOLT] llvm-bolt-wrapper: handle cases where output binary doesn't exist Summary: Handle invocations where output binary is not generated (e.g. due to an expected assertion or exit with BOLT-ERROR) and skip binary comparison in such cases. (cherry picked from FBD28080158) [BOLT] llvm-bolt-wrapper: handle boltdiff mode Summary: Handle `llvm-boltdiff` invocation similarly to `perf2bolt` (cherry picked from FBD28080157) [BOLT] llvm-bolt-wrapper: find section with mismatch Summary: For mismatching ELF files, find section with mismatch and print sections table with highlighted mismatch section. (cherry picked from FBD28087231) [BOLT] llvm-bolt-wrapper: ignore-build-id in perf2bolt mode Summary: When perf2bolt fails to match build-id from perf output for cmp binary, we need to use -ignore-build-id option to override the strict checking behavior. (cherry picked from FBD28087232) [BOLT] llvm-bolt-wrapper: suppress -bolt-info=0 in heatmap mode Summary: Heatmap mode is incompatible with `-bolt-info=0` used to suppress binary differences. Remove it. (cherry picked from FBD28087230) [BOLT] llvm-bolt-wrapper: add config-generator mode Summary: llvm-bolt-wrapper config can be generated by the script itself. It makes the workflow more reliable compared to preparing the config manually. (cherry picked from FBD28358939) [BOLT] llvm-bolt-wrapper: fix mismatch reporting Summary: 1. Fixed header comparison issue where headers were skipped due to `skip_end == 0` (`lst[:-n]` does not work if n==0). 2. Detect color support while printing mismatching section: - use bold color if terminal supports ANSI escape codes, - otherwise print ">" at mismatching section. 3. Remove extra 0x before mismatching offset. (cherry picked from FBD28691979) [BOLT] llvm-bolt-wrapper: handle perf2bolt tests with ignore-build-id Summary: `ignore-build-id` must be passed not more than once. Account for that. (cherry picked from FBD29830266) [BOLT] llvm-bolt-wrapper: fix running subprocesses in parallel Summary: The commands were running sequentially due to the use of blocking `communicate` call, which is needed when stdout/stderr are directed to a pipe. Fix this behavior by directing the output to a file. (cherry picked from FBD29951863) |