NNikita Popov[Profile] Add -no-opaque-pointers to IR tests (NFC)
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[test] Improve PGO tests | 5 年前 | |
[llvm][profile] Add padding after binary IDs Some tests with binary IDs would fail with error: no profile can be merged. This is because raw profiles could have unaligned headers when emitting binary IDs. This means padding should be emitted after binary IDs are emitted to ensure everything else is aligned. This patch adds padding after each binary ID to ensure the next binary ID size is 8-byte aligned. This also adds extra checks to ensure we aren't reading corrupted data when printing binary IDs. Differential Revision: https://reviews.llvm.org/D110365 | 4 年前 | |
[profile] Fix profile merging with binary IDs This fixes support for merging profiles which broke as a consequence of e50a38840dc3db5813f74b1cd2e10e6d984d0e67. The issue was missing adjustment in merge logic to account for the binary IDs which are now included in the raw profile just after header. In addition, this change also: * Includes the version in module signature that's used for merging to avoid accidental attempts to merge incompatible profiles. * Moves the binary IDs size field after version field in the header as was suggested in the review. Differential Revision: https://reviews.llvm.org/D107143 | 4 年前 | |
compiler-rt: Rename remaining cc files in test/profile to cpp See r367803 and similar other changes. llvm-svn: 367858 | 6 年前 | |
[compiler-rt][profile] Make corrupted-profile.c more robust This test specifically checks that profiles are not mergeable if there's a change in the CounterPtr in the profile header. The test manually changes CounterPtr by explicitly calling memset on some offset into the profile file. This test would fail if binary IDs were emitted because the offset calculation does not take into account the binary ID sizes. This patch updates the test to use types provided in profile/InstrProfData.inc to make it more resistant to profile layout changes. Differential Revision: https://reviews.llvm.org/D110277 | 4 年前 | |
[Profile] Add -no-opaque-pointers to IR tests (NFC) The output differs slightly with opaque pointers (no GEP constexpr), add -no-opaque-pointers for now. | 4 年前 | |
Update test counter_promo_nest.c to meet llvm change The test expects to see the pattern "load add store" twice in a row. However the test contains actually several instances of this pattern. Currently the first pattern appears in the output twice. But after LLVM change https://reviews.llvm.org/D42691 some addtional modification is done and one of another pattern has been hoisted in function entry block. As a result we have another order of meeting this pattern. The test is updated to meet this change. llvm-svn: 324571 | 8 年前 | |
[Profile] Add -no-opaque-pointers to IR tests (NFC) The output differs slightly with opaque pointers (no GEP constexpr), add -no-opaque-pointers for now. | 4 年前 | |
[profile] Add -fprofile-instr-generate tests for weak definition and various linkages | 5 年前 | |
[profile][test] Improve coverage-linkage.cpp with ld.lld --gc-sections The __llvm_prf_names section uses SHF_GNU_RETAIN. However, GNU ld before 2015-10 (https://sourceware.org/bugzilla/show_bug.cgi?id=19161) neither supports it nor retains __llvm_prf_names according to __start___llvm_prf_names. So --gc-sections does not work on such old GNU ld. This is not a problem for gold and sufficiently new lld. | 4 年前 | |
[profile] Add -fprofile-instr-generate tests for weak definition and various linkages | 5 年前 | |
[test] Fix compiler-rt/test/profile/coverage_emptylines.cpp if the build directory is under /tmp llvm-cov -path-equivalence=/tmp,... is used by some checked-in coverage mapping files where the original filename is under /tmp. If the test itself produces the coverage mapping file, there is no need for /tmp. For coverage_emptylines.cpp: the source filename is under the build directory. If the build directory is under /tmp, the path mapping will make llvm-cov fail to find the file. | 5 年前 | |
[test] Fix compiler-rt/test/profile/coverage_emptylines.cpp if the build directory is under /tmp llvm-cov -path-equivalence=/tmp,... is used by some checked-in coverage mapping files where the original filename is under /tmp. If the test itself produces the coverage mapping file, there is no need for /tmp. For coverage_emptylines.cpp: the source filename is under the build directory. If the build directory is under /tmp, the path mapping will make llvm-cov fail to find the file. | 5 年前 | |
Rollback 260394 -- 32bit test needs more config support llvm-svn: 260402 | 10 年前 | |
[test] Fix compiler-rt/test/profile/coverage_emptylines.cpp if the build directory is under /tmp llvm-cov -path-equivalence=/tmp,... is used by some checked-in coverage mapping files where the original filename is under /tmp. If the test itself produces the coverage mapping file, there is no need for /tmp. For coverage_emptylines.cpp: the source filename is under the build directory. If the build directory is under /tmp, the path mapping will make llvm-cov fail to find the file. | 5 年前 | |
Fix the following tests when running under cross-compilation: Profile-aarch64 :: Linux/comdat_rename.test Profile-aarch64 :: Linux/extern_template.test Profile-aarch64 :: Linux/instrprof-comdat.test Profile-aarch64 :: Linux/instrprof-cs.c The issue is that the created (aarch64) binaries were attempting to run natively instead of running through %run, which guarantees running in the proper environment if the compilation was configured correctly. llvm-svn: 282264 | 9 年前 | |
Minor clean up of profile rt tests llvm-svn: 305113 | 8 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
[profile][test] Delete --path-equivalence=/tmp,%S This causes the test to fail if %S is under /tmp | 4 年前 | |
Reapply commit b7425e956 The commit b7425e956: [NFC] fix typos is harmless but was reverted by accident. Reapply. | 4 年前 | |
[InstrProf] Add single byte coverage mode Use the llvm flag -pgo-function-entry-coverage to create single byte "counters" to track functions coverage. This mode has significantly less size overhead in both code and data because * We mark a function as "covered" with a store instead of an increment which generally requires fewer assembly instructions * We use a single byte per function rather than 8 bytes per block The trade off of course is that this mode only tells you if a function has been covered. This is useful, for example, to detect dead code. When combined with debug info correlation [0] we are able to create an instrumented Clang binary that is only 150M (the vanilla Clang binary is 143M). That is an overhead of 7M (4.9%) compared to the default instrumentation (without value profiling) which has an overhead of 31M (21.7%). [0] https://groups.google.com/g/llvm-dev/c/r03Z6JoN7d4 Reviewed By: kyulee Differential Revision: https://reviews.llvm.org/D116180 | 4 年前 | |
[PGO] Delay profile dir creation until write Differential Revision: http://reviews.llvm.org/D29960 llvm-svn: 295108 | 9 年前 | |
[PGO] Add Linux specific test cases for profile runtime (second try with more strict config check) Currently, only gc-sections related tests are added. Gold linker currently is required due to PR19161 of bfd linker. llvm-svn: 257456 | 10 年前 | |
[PGO] Add Linux specific test cases for profile runtime (second try with more strict config check) Currently, only gc-sections related tests are added. Gold linker currently is required due to PR19161 of bfd linker. llvm-svn: 257456 | 10 年前 | |
[PGO] Add Linux specific test cases for profile runtime (second try with more strict config check) Currently, only gc-sections related tests are added. Gold linker currently is required due to PR19161 of bfd linker. llvm-svn: 257456 | 10 年前 | |
add -f to rm so the test passes the first time it's run the file file is not present (otherwise it just keeps failing at the rm step and never passes... ) llvm-svn: 271959 | 9 年前 | |
[Profile] Handle invalid profile data This mostly follows LLVM's InstrProfReader.cpp error handling. Previously, attempting to merge corrupted profile data would result in crashes. See https://crbug.com/1216811#c4. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D104050 | 4 年前 | |
[InstrProf][Correlate] Verify debug info with llvm-profdata show Use the llvm-profdata show command to verify debug info for profile correlation using the --debug-info option. Reviewed By: kyulee Differential Revision: https://reviews.llvm.org/D118181 | 4 年前 | |
[profile][test] Add -no-pie to make value profile merge work on Linux with default PIE Alpine enables PIE by default. | 4 年前 | |
[profile][test] Add -no-pie to make value profile merge work on Linux with default PIE Alpine enables PIE by default. | 4 年前 | |
Set hidden attribute on lprofMergeValueProfData Summary: The changes in https://reviews.llvm.org/D44847 cause load time failure due to lprofMergeValueProfData in Android libs enabled with profile generation: "dlopen failed: cannot locate symbol "lprofMergeValueProfData" referenced by..." Marking lprofMergeValueProfData as hidden so the correct in-module definition is picked by the linker. Reviewers: davidxl Reviewed By: davidxl Subscribers: efriedma, xur, davidxl, llvm-commits Differential Revision: https://reviews.llvm.org/D55893 llvm-svn: 354064 | 7 年前 | |
[profile][test] Pin Linux/instrprof-value-prof-warn.test to -fuse-ld=bfd To work around https://sourceware.org/bugzilla/show_bug.cgi?id=27490 | 5 年前 | |
[compiler-rt] Rename lit.*.cfg.* -> lit.*.cfg.py.* These lit configuration files are really Python source code. Using the .py file extension helps editors and tools use the correct language mode. LLVM and Clang already use this convention for lit configuration, this change simply applies it to all of compiler-rt. Reviewers: vitalybuka, dberris Differential Revision: https://reviews.llvm.org/D63658 llvm-svn: 364591 | 6 年前 |