| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Add Nix recipe for collecting linker reproducers. (#145789) As proposed in: https://discourse.llvm.org/t/improving-the-reproducibility-of-linker-benchmarking/86057 This is a Nix recipe for collecting reproducers for benchmarking purposes in a reproducible way. It works by injecting a linker wrapper that embeds a reproducer tarball into a non-allocated section of every linked object, which generally causes them to be smuggled out of the build tree in a section of the final binaries. It may be used in conjunction with the script lld/utils/run_benchmark.py to measure the relative performance of linker changes or compare the performance of different linkers. | 9 个月前 | |
[lld][utils] Remove Python2 compatible imports in benchmark.py These imports were moved around in Python 3.0 (https://docs.python.org/3/whatsnew/3.0.html#library-changes). LLVM requires Python >= 3.8 so we can expect the Python3 names to exist. | 9 个月前 | |
Add a script to run various benchmarks and send the result to lnt. Lnt is both a server and a set of script for benchmarking llvm. I don't think it makes sense to use the scripts for lld since our benchmarks are quite different. The server on the other hand is very general and seems to work well for tracking any quantities. This patch adds a script to lld that can be used to run various benchmarks and send the result to lnt. The benchmarks are assumed to each be a response file in a subdirectory. Each subdirectory can contain multiple response files. That can be used to have a plain response.txt and a response-icf.txt for example. The name of each benchmark is the combination of the directory name and the "flavor": firefox-gc, chromium-icf, etc. For the first version the script uses perf and collects all the metrics that a plain "perf stat" prints. This script can then be used by a developer to test a patch or by a bot to keep track of lld's performance. llvm-svn: 318158 | 8 年前 | |
Add lld benchmarking script. The purpose of this script is to measure the performance effect of an lld change in a statistically sound way, automating all the tedious parts of doing so. It copies the test case into /tmp as well as running the test binaries from /tmp to reduce the influence on the test machine's storage medium on the results. It accounts for measurement bias caused by binary layout (using the --randomize-section-padding flag to link the test binaries) and by environment variable size (implemented by hyperfine [1]). Runs of the base and test case are interleaved to account for environmental factors which may influence the result due to the passage of time. The results of running hyperfine are collected into a results.csv file in the output directory and may be analyzed by the user with a tool such as ministat. Requirements: Linux host, hyperfine [2] in $PATH, run from a build directory configured to use ninja and a recent version of lld that supports --randomize-section-padding, /tmp is tmpfs. [1] https://github.com/sharkdp/hyperfine/blob/3cedcc38d0c430cbf38b4364b441c43a938d2bf3/src/util/randomized_environment_offset.rs#L1 [2] https://github.com/sharkdp/hyperfine Reviewers: rnk, MaskRay, smithp35 Reviewed By: rnk Pull Request: https://github.com/llvm/llvm-project/pull/138367 | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 个月前 | ||
| 9 个月前 | ||
| 8 年前 | ||
| 1 年前 |