| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 个月前 | ||
| 9 个月前 | ||
[Profile] Remove __llvm_profile_has_correlation() (#71996) As discussed in https://github.com/llvm/llvm-project/pull/70856#issuecomment-1791465183 and https://github.com/llvm/llvm-project/pull/70856#issuecomment-1806281746, it's better not to do runtime check for VARIANT_MASK_DBG_CORRELATE bit in __llvm_profile_raw_version when deciding if profile data/name sections should be dropped or not. | 2 年前 | |
Fix some small typos in compiler-rt. NFC (#133388) | 1 年前 | |
[PGO][Offload] Allow PGO flags to be used on GPU targets (#94268) This pull request is the third part of an ongoing effort to extends PGO instrumentation to GPU device code and depends on https://github.com/llvm/llvm-project/pull/93365. This PR makes the following changes: - Allows PGO flags to be supplied to GPU targets - Pulls version global from device - Modifies __llvm_write_custom_profile and lprofWriteDataImpl to allow the PGO version to be overridden | 1 年前 | |
| 9 个月前 | ||
Giving a lot more functions prototypes; NFC This should address https://lab.llvm.org/buildbot/#/builders/37/builds/12315 and speculatively fix other similar diagnostics. | 4 年前 | |
Fix some small typos in compiler-rt. NFC (#133388) | 1 年前 | |
[profile] Perform pointer arithmetic in uintptr_t (#118944) Based on the feedback from #118782, this switches most of the pointer arithmetic in __llvm_profile_merge_from_buffer to work on uintptr_t instead of const char *, only casting back to a pointer when performing actual accesses. This ensures that all the arithmetic is performed without any assumptions about pointer overflow. | 1 年前 | |
Reland "[CMake] Support installation of InstrProfData.inc" This header fragment is useful on its own for any consumer that wants to use custom instruction profile runtime with the LLVM instrumentation. The concrete use case is in Fuchsia's kernel where we want to use instruction profile instrumentation, but we cannot use the compiler-rt runtime because it's not designed for use in the kernel environment. This change allows installing this header as part of compiler-rt. Differential Revision: https://reviews.llvm.org/D64532 | 6 年前 | |
Reland "[PGO] Make emitted symbols hidden" This was reverted because it was breaking when targeting Darwin which tried to export these symbols which are now hidden. It should be safe to just stop attempting to export these symbols in the clang driver, though Apple folks will need to change their TAPI allow list described in the commit where these symbols were originally exported https://github.com/llvm/llvm-project/commit/f5380185623be243ba0f1b18d4bd594ac5cc7163 Then reverted again because it broke tests on MacOS, they should be fixed now. Bug: https://github.com/llvm/llvm-project/issues/58265 Differential Revision: https://reviews.llvm.org/D135340 | 3 年前 | |
[InstrProf] Remove -forder-file-instrumentation (#130192) | 1 年前 | |
[InstrProf] Remove -forder-file-instrumentation (#130192) | 1 年前 | |
[profile] Change __llvm_profile_counter_bias etc. types to match llvm (#102747) As detailed in Issue #101667, two profile tests FAIL on 32-bit SPARC, both Linux/sparc64 and Solaris/sparcv9 (where the tests work when enabled): Profile-sparc :: ContinuousSyncMode/runtime-counter-relocation.c Profile-sparc :: ContinuousSyncMode/set-file-object.c The Solaris linker provides the crucial clue as to what's wrong: ld: warning: symbol '__llvm_profile_counter_bias' has differing sizes: (file runtime-counter-relocation-17ff25.o value=0x8; file libclang_rt.profile-sparc.a(InstrProfilingFile.c.o) value=0x4); runtime-counter-relocation-17ff25.o definition taken In fact, the types in llvm and compiler-rt differ: - __llvm_profile_counter_bias/INSTR_PROF_PROFILE_COUNTER_BIAS_VAR is created in llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp (InstrLowerer::getCounterAddress) as int64_t, while compiler-rt/lib/profile/InstrProfilingFile.c uses intptr_t. While this doesn't matter in the 64-bit case, the type sizes differ for 32-bit. - __llvm_profile_bitmap_bias/INSTR_PROF_PROFILE_BITMAP_BIAS_VAR has the same issue: created in InstrProfiling.cpp (InstrLowerer::getBitmapAddress) as int64_t, while InstrProfilingFile.c again uses intptr_t. This patch changes the compiler-rt types to match llvm. At the same time, the affected testcases are enabled on Solaris, too, where they now just PASS. Tested on sparc64-unknown-linux-gnu, sparcv9-sun-solaris2.11, x86_64-pc-linux-gnu, and `amd64-pc-solaris2.11. | 1 年前 | |
[InstrProf] Remove -forder-file-instrumentation (#130192) | 1 年前 | |
[InstrProf] Remove -forder-file-instrumentation (#130192) | 1 年前 | |
[InstrProf] Remove -forder-file-instrumentation (#130192) | 1 年前 | |
Revert " [profile] Implement a non-mmap path when reading profile files from a non-local filesystem (#131177)" This reverts commit 14c95e0c8b25f6deba47cd279c5dcdeef3870159. Test fails on mac, e.g. https://green.lab.llvm.org/job/llvm.org/job/clang-stage1-RA/3899/testReport/junit/Profile-x86_64/Profile-x86_64/instrprof_no_mmap_during_merging_c/ | 1 年前 | |
[PGO] Simplify InstrProfilingRuntime.cpp Differential Revision: https://reviews.llvm.org/D136192 | 3 年前 | |
| 9 个月前 | ||
[profile] Implement a non-mmap path when reading profile files from a non-local filesystem (#131177) On AIX, when accessing mmap'ed memory associated to a file on NFS, a SIGBUS might be raised at random. The problem is still in open state with the OS team. This PR teaches the profile runtime, under certain conditions, to avoid the mmap when reading the profile file during online merging. This PR has no effect on any platform other than AIX because I'm not aware of this problem on other platforms. Other platforms can easily opt-in to this functionality in the future. The logic in function is_local_filesystem was copied from [llvm/lib/Support/Unix/Path.inc](https://github.com/llvm/llvm-project/blob/f388ca3d9d9a58e3d189458b590ba68dfd9e5a2d/llvm/lib/Support/Unix/Path.inc#L515) (https://reviews.llvm.org/D58801), because it seems that the compiler-rt/profile cannot reuse code from llvm except through InstrProfData.inc. Thanks to @hubert-reinterpretcast for substantial feedback downstream. --------- Co-authored-by: Wael Yehia <wyehia@ca.ibm.com> Co-authored-by: Hubert Tong <hubert.reinterpretcast@gmail.com> | 1 年前 | |
[compiler-rt] Silence warnings when building with Clang ToT Fixes several warnings such as: C:\git\llvm-project\compiler-rt\lib\profile\InstrProfilingFile.c(760,18): warning: cast from 'const char *' to 'void *' drops const qualifier [-Wcast-qual] 760 | free((void *)lprofCurFilename.FilenamePat); | ^ 3 warnings generated. | 2 年前 | |
Reland "[PGO] Make emitted symbols hidden" This was reverted because it was breaking when targeting Darwin which tried to export these symbols which are now hidden. It should be safe to just stop attempting to export these symbols in the clang driver, though Apple folks will need to change their TAPI allow list described in the commit where these symbols were originally exported https://github.com/llvm/llvm-project/commit/f5380185623be243ba0f1b18d4bd594ac5cc7163 Then reverted again because it broke tests on MacOS, they should be fixed now. Bug: https://github.com/llvm/llvm-project/issues/58265 Differential Revision: https://reviews.llvm.org/D135340 | 3 年前 | |
[PGO][Offload] Allow PGO flags to be used on GPU targets (#94268) This pull request is the third part of an ongoing effort to extends PGO instrumentation to GPU device code and depends on https://github.com/llvm/llvm-project/pull/93365. This PR makes the following changes: - Allows PGO flags to be supplied to GPU targets - Pulls version global from device - Modifies __llvm_write_custom_profile and lprofWriteDataImpl to allow the PGO version to be overridden | 1 年前 | |
[compiler-rt] Add a prefix on the windows mmap symbols (#78037) For Windows, the compiler-rt profile library contains a polyfill reimplementation of the mmap family of functions. Previously, the runtime library exposed those symbols like, "mmap", in the user symbol namespace. This could cause misdetections by configure scripts that check for the "mmap" function just by linking, without including headers. Add a prefix on the symbols, and make an undeclared function static. This fixes such an issue reported at https://github.com/mstorsjo/llvm-mingw/issues/390. | 2 年前 | |
[compiler-rt] Add a prefix on the windows mmap symbols (#78037) For Windows, the compiler-rt profile library contains a polyfill reimplementation of the mmap family of functions. Previously, the runtime library exposed those symbols like, "mmap", in the user symbol namespace. This could cause misdetections by configure scripts that check for the "mmap" function just by linking, without including headers. Add a prefix on the symbols, and make an undeclared function static. This fixes such an issue reported at https://github.com/mstorsjo/llvm-mingw/issues/390. | 2 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 个月前 | ||
| 9 个月前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 4 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 6 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 |