| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[Perf-training] Adding support for tests to skip the clang driver This patch adds a new set of substitutions to the lit run lines for order files and PGO generation which run the clang driver to get the cc1 command, then execute the cc1 command directly. This allows the scripts to bypass profiling the clang driver over and over again. The approach in this patch was discussed via IRC with Sean Silvas. Special thanks to Daniel Dunbar whose out-of-tree code I liberally plagiarized. llvm-svn: 263997 | 10 年前 | |
[clang][cmake] Fixes for PGO builds when invoking ninja twice (#92591) This fixes two problems with the 2-stage PGO builds. The first problem was that the stage2-instrumented and stage2 targets would not be built on the second ninja invocation. For example: This would work as expected. $ ninja -v -C build stage2-instrumented-generate-profdata Edit a file. $ touch llvm/lib/Support/StringExtras.cpp This would rebuild stage1 only and not build stage2-instrumented or regenerate the profile data. $ ninja -v -C build stage2-instrumented-generate-profdata The second problem was that in some cases, the profile data would be regenerated, but not all of the stage2 targets would be rebuilt. One common scenario where this would happen is: This would work as expected. $ ninja -C build stage2-check-all This would regenerate the profile data, but then only build the targets that were needed for install, but weren't needed for check-all. This would cause errors like: ld.lld: error: Function Import: link error: linking module flags 'ProfileSummary': IDs have conflicting values in ... This is because the executibles being built for the install target used the new profile data, but they were linking with libraries that used the old profile data. $ ninja -C build stage2-install With this change we can re-enable PGO for the release builds. | 2 年前 | |
[CMake] Add support for generating profdata for clang from training files Summary: This patch adds support for using LIT to drive generating PGO profile data for clang. This first pass implementation should work on Linux and Unix based platforms. If you build clang using CMake with LLVM_BUILD_INSTRUMENTED=On the CMake build generates a generate-profdata target that will use the just-built clang to build any test files (see hello_world.cpp as an example). Each test compile will generate profraw files for each clang process. After all tests have run CMake will merge the profraw files using llvm-profdata. Future opportunities for extension: * Support for Build->Profile->Build bootstrapping * Support for linker order file generation using a similar mechanism and the same training data * Support for Windows Reviewers: dexonsmith, friss, bogner, cmatthews, vsk, silvas Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D15462 llvm-svn: 255740 | 10 年前 | |
Reland [Clang][CMake] Support perf, LBR, and Instrument CLANG_BOLT options (#69133) This reverts commit 6953b367027e4234607a6718a0a1d57eb52ef57e. Couldn't reproduce cmake issues from any of the affected buildbots: https://lab.llvm.org/buildbot/#/builders/139/builds/57628 https://lab.llvm.org/buildbot/#/builders/163/builds/50270 https://lab.llvm.org/buildbot/#/builders/223/builds/34823 https://lab.llvm.org/buildbot/#/builders/225/builds/29950 https://lab.llvm.org/buildbot/#/builders/245/builds/19468 A common trait is that these builders don't clean build directory. Push again and monitor these builders. | 2 年前 | |
Reland [Clang][CMake] Support perf, LBR, and Instrument CLANG_BOLT options (#69133) This reverts commit 6953b367027e4234607a6718a0a1d57eb52ef57e. Couldn't reproduce cmake issues from any of the affected buildbots: https://lab.llvm.org/buildbot/#/builders/139/builds/57628 https://lab.llvm.org/buildbot/#/builders/163/builds/50270 https://lab.llvm.org/buildbot/#/builders/223/builds/34823 https://lab.llvm.org/buildbot/#/builders/225/builds/29950 https://lab.llvm.org/buildbot/#/builders/245/builds/19468 A common trait is that these builders don't clean build directory. Push again and monitor these builders. | 2 年前 | |
[perf-training] Support additional test suffixes .cc and .test are commonly used and supported by other lit test suites. Differential Revision: https://reviews.llvm.org/D138975 | 3 年前 | |
[cmake] Provide CURRENT_TOOLS_DIR centrally, replacing CLANG_TOOLS_DIR CLANG_TOOLS_DIR holds the the current bin/ directory, maybe with a %(build_mode) placeholder. It is used to add the just-built binaries to $PATH for lit tests. In most cases it equals LLVM_TOOLS_DIR, which is used for the same purpose. But for a standalone build of clang, CLANG_TOOLS_DIR points at the build tree and LLVM_TOOLS_DIR points at the provided LLVM binaries. Currently CLANG_TOOLS_DIR is set in clang/test/, clang-tools-extra/test/, and other things always built with clang. This is a few cryptic lines of CMake in each place. Meanwhile LLVM_TOOLS_DIR is provided by configure_site_lit_cfg(). This patch moves CLANG_TOOLS_DIR to configure_site_lit_cfg() and renames it: - there's nothing clang-specific about the value - it will also replace LLD_TOOLS_DIR, LLDB_TOOLS_DIR etc (not in this patch) It also defines CURRENT_LIBS_DIR. While I removed the last usage of CLANG_LIBS_DIR in e4cab4e24d1, there are LLD_LIBS_DIR usages etc that may be live, and I'd like to mechanically update them in a followup patch. Differential Revision: https://reviews.llvm.org/D121763 | 4 年前 | |
[perf-training] Support additional test suffixes .cc and .test are commonly used and supported by other lit test suites. Differential Revision: https://reviews.llvm.org/D138975 | 3 年前 | |
[cmake] Provide CURRENT_TOOLS_DIR centrally, replacing CLANG_TOOLS_DIR CLANG_TOOLS_DIR holds the the current bin/ directory, maybe with a %(build_mode) placeholder. It is used to add the just-built binaries to $PATH for lit tests. In most cases it equals LLVM_TOOLS_DIR, which is used for the same purpose. But for a standalone build of clang, CLANG_TOOLS_DIR points at the build tree and LLVM_TOOLS_DIR points at the provided LLVM binaries. Currently CLANG_TOOLS_DIR is set in clang/test/, clang-tools-extra/test/, and other things always built with clang. This is a few cryptic lines of CMake in each place. Meanwhile LLVM_TOOLS_DIR is provided by configure_site_lit_cfg(). This patch moves CLANG_TOOLS_DIR to configure_site_lit_cfg() and renames it: - there's nothing clang-specific about the value - it will also replace LLD_TOOLS_DIR, LLDB_TOOLS_DIR etc (not in this patch) It also defines CURRENT_LIBS_DIR. While I removed the last usage of CLANG_LIBS_DIR in e4cab4e24d1, there are LLD_LIBS_DIR usages etc that may be live, and I'd like to mechanically update them in a followup patch. Differential Revision: https://reviews.llvm.org/D121763 | 4 年前 | |
[Clang][perf-training] Fix clean command in perf-helper.py (#118978) The first path argument was always being ignored, and since most calls to this command only passed one path, it wasn't actually doing anything in most cases. This bug was introduced by dd0356d741aefa25ece973d6cc4b55dcb73b84b4. (cherry picked from commit 18af3fc1bf8855e1e166e64a9210ed07d610aa54) | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 10 年前 | ||
| 2 年前 | ||
| 10 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 1 年前 |