| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[AIX] Add a dummy variable in the __llvm_orderfile section (#81968) to satisfy the __start___llvm_orderfile reference when linking with -bexpfull and -fprofile-generate on AIX. | 2 年前 | |
Reapply: [MC/DC][Coverage] Loosen the limit of NumConds from 6 (#82448) By storing possible test vectors instead of combinations of conditions, the restriction is dramatically relaxed. This introduces two options to cc1: * -fmcdc-max-conditions=32767 * -fmcdc-max-test-vectors=2147483646 This change makes coverage mapping, profraw, and profdata incompatible with Clang-18. - Bitmap semantics changed. It is incompatible with previous format. - BitmapIdx in Decision points to the end of the bitmap. - Bitmap is packed per function. - llvm-cov can understand profdata generated by llvm-profdata-18. RFC: https://discourse.llvm.org/t/rfc-coverage-new-algorithm-and-file-format-for-mc-dc/76798 -- Change(s) since llvmorg-19-init-14288-g7ead2d8c7e91 - Update compiler-rt/test/profile/ContinuousSyncMode/image-with-mcdc.c | 2 年前 | |
Revert "[Profile] Refactor profile correlation. (#70712)" This reverts commit 4b383d0af93136b80841fc140da0823dfc441dd4. | 2 年前 | |
BlockFrequencyInfoImpl: Avoid big numbers, increase precision for small spreads BlockFrequencyInfo calculates block frequencies as Scaled64 numbers but as a last step converts them to unsigned 64bit integers ( BlockFrequency). This improves the factors picked for this conversion so that: * Avoid big numbers close to UINT64_MAX to avoid users overflowing/saturating when adding multiply frequencies together or when multiplying with integers. This leaves the topmost 10 bits unused to allow for some room. * Spread the difference between hottest/coldest block as much as possible to increase precision. * If the hot/cold spread cannot be represented loose precision at the lower end, but keep the frequencies at the upper end for hot blocks differentiable. | 2 年前 | |
[InstrPGO][TypeProf]Annotate vtable types when they are present in the profile (#99402) Before this change, when file.profdata have vtable profiles but --enable-vtable-value-profiling is not on for optimized build, warnings from this line [1] will show up. They are benign for performance but confusing. It's better to automatically annotate vtable profiles if file.profdata has them. This PR implements it in profile use pass. * If -icp-max-num-vtables is zero (default value is 6), vtable profiles won't be annotated. [1] https://github.com/llvm/llvm-project/blob/464d321ee8dde1eaf14b5537eaf030e6df513849/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp#L1762-L1768 | 2 年前 | |
Revert "Diagnose problematic uses of constructor/destructor attribute (#67673)" This reverts commit 27ecb63c260400dd20b8c5dc16d0dfd2d0e7122e. Still fails compiler-rt: https://lab.llvm.org/buildbot/#/builders/109/builds/75364 | 2 年前 | |
| 2 年前 | ||
[compiler-rt] Revise IDE folder structure (#89753) Update the folder titles for targets in the monorepository that have not seen taken care of for some time. These are the folders that targets are organized in Visual Studio and XCode ( set_property(TARGET <target> PROPERTY FOLDER "<title>")) when using the respective CMake's IDE generator. * Ensure that every target is in a folder * Use a folder hierarchy with each LLVM subproject as a top-level folder * Use consistent folder names between subprojects * When using target-creating functions from AddLLVM.cmake, automatically deduce the folder. This reduces the number of set_property/set_target_property, but are still necessary when add_custom_target, add_executable, add_library, etc. are used. A LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's root CMakeLists.txt. | 2 年前 | |
[PGO][compiler-rt] Add a test to ensure include files do not diverge (#97775) Memprof has two include files that are duplicated between LLVM and compiler-rt. They need to stay in sync to ensure correct functionality, but the comments can be somewhat easy to miss, which causes fixups like 839ed1ba553346b0c225e9b839cf3cb716dc7412 to be needed. This patch adds a test to ensure that the files are the same between LLVM and compiler-rt to catch this ideally before commit, but if not, soon afterwards. There is additionally InstrProfData.inc for some PGO variants that is added to the same test here as well. | 2 年前 | |
[InstrProf] Use separate comdat group for data and counters Summary: I hadn't realized that instrumentation runs before inlining, so we can't use the function as the comdat group. Doing so can create relocations against discarded sections when references to discarded __profc_ variables are inlined into functions outside the function's comdat group. In the future, perhaps we should consider standardizing the comdat group names that ELF and COFF use. It will save object file size, since __profv_$sym won't appear in the symbol table again. Reviewers: xur, vsk Subscribers: eraman, hiraditya, cfe-commits, #sanitizers, llvm-commits Tags: #clang, #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D58737 llvm-svn: 355044 | 7 年前 | |
[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 年前 | |
[InstrProf] Allow CSIRPGO function entry coverage The flag -fcs-profile-generate for enabling CSIRPGO moves the pass pgo-instrumentation after inlining. Function entry coverage works fine with this change, so remove the assert. I had originally left this assert in because I had not tested this at the time. Reviewed By: davidxl, MaskRay Differential Revision: https://reviews.llvm.org/D129407 | 3 年前 | |
[gcov][test] Add -dumpdir ./ These tests rely on an unintended behavior that when the driver performs both compilation and linking phases, the .gcno & .gcda files are placed in PWD. The behavior will be fixed to respect -o (match -ftime-trace, -gsplit-dwarf, and GCC). Add -dumpdir ./ so that the tests will work with or without the behavior change, and make it easy to compare the coverage behavior with GCC. | 3 年前 | |
[gcov][test] Add -dumpdir ./ These tests rely on an unintended behavior that when the driver performs both compilation and linking phases, the .gcno & .gcda files are placed in PWD. The behavior will be fixed to respect -o (match -ftime-trace, -gsplit-dwarf, and GCC). Add -dumpdir ./ so that the tests will work with or without the behavior change, and make it easy to compare the coverage behavior with GCC. | 3 年前 | |
[gcov][test] Add -dumpdir ./ These tests rely on an unintended behavior that when the driver performs both compilation and linking phases, the .gcno & .gcda files are placed in PWD. The behavior will be fixed to respect -o (match -ftime-trace, -gsplit-dwarf, and GCC). Add -dumpdir ./ so that the tests will work with or without the behavior change, and make it easy to compare the coverage behavior with GCC. | 3 年前 | |
[gcov][test] Add -dumpdir ./ These tests rely on an unintended behavior that when the driver performs both compilation and linking phases, the .gcno & .gcda files are placed in PWD. The behavior will be fixed to respect -o (match -ftime-trace, -gsplit-dwarf, and GCC). Add -dumpdir ./ so that the tests will work with or without the behavior change, and make it easy to compare the coverage behavior with GCC. | 3 年前 | |
Revert "XFAIL some PGO tests on AIX until the new linker becomes publicly available." AIX 7.2 TL5 SP4 and AIX 7.3 TL0 SP2 have been released as of now. The linker in these OS versions recognizes and properly supports __start_SECNAME and __stop_SECNAME symbols which are needed for PGO. This reverts commit 93bb2f16e85d2d4c8d3ddadebd99fc0fe26d974b. | 3 年前 | |
[PGO] Remove calls to __llvm_orderfile_dump() in instrprof-api.c test (#79150) https://github.com/llvm/llvm-project/pull/78285 added a test which calls __llvm_orderfile_dump(), a functionality that is not supported on many platforms. This PR removes the call to __llvm_orderfile_dump() to avoid it failing on unsupported platforms, and turn on the test for Windows, so we test the rest of the API that are supported. | 2 年前 | |
[nfc][compiler-rt]Remove round-up in __llvm_profile_get_num_data (#83194) - Update instrprof-basic.c as a regression test. | 2 年前 | |
Fix comparing in instrprof-binary-correlate.c | 2 年前 | |
[InstrProf] Test that entry coverage counts accumulate (#81806) | 2 年前 | |
[profile] Eliminate dynamic memory allocation for buffered writer With this change, dynamic memory allocation is only used for testing purpose. This change is one of the many steps to make instrument profiler dynamic allocation free. llvm-svn: 269453 | 10 年前 | |
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 年前 | |
[compiler-rt] Fix instrprof-darwin-exports test (#67487) | 2 年前 | |
Reland [pgo] Avoid introducing relocations by using private alias In many cases, we can use an alias to avoid a symbolic relocations, instead of using the public, interposable symbol. When the instrumented function is in a COMDAT, we can use a hidden alias, and still avoid references to discarded sections. Previous versions of this patch allowed the compiler to name the generated alias, but that would only be valid when the functions were local. Since the alias may be used across TUs we use a more deterministic naming convention, and add a ".local" suffix to the alias name just as we do for relative vtables aliases. https://reviews.llvm.org/rG20894a478da224bdd69c91a22a5175b28bc08ed9 removed an incorrect assertion on Mach-O which caused assertion failures in LLD. We prevent duplicate symbols under ThinLTO + PGO + CFI by disabling alias generation when the target function has MD_type metadata used in CFI. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D137982 | 3 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
[InstrProf] Test that entry coverage counts accumulate (#81806) | 2 年前 | |
[profile] PROF_ERR, PROF_WARN 1) Move common prefix to the macro def 2) Introduced PROF_WARN 3) Make error message unconditionally printed out. llvm-svn: 270185 | 10 年前 | |
NFC: Mark instrprof-gc-sections.c unsupported on ppc64le PR #99056 marked this test case as an XFAIl for ppc64le but it is actually being temporary unsupported, this changes it from an XFAIl to unsupported. | 2 年前 | |
[gcov][test] Add -dumpdir ./ These tests rely on an unintended behavior that when the driver performs both compilation and linking phases, the .gcno & .gcda files are placed in PWD. The behavior will be fixed to respect -o (match -ftime-trace, -gsplit-dwarf, and GCC). Add -dumpdir ./ so that the tests will work with or without the behavior change, and make it easy to compare the coverage behavior with GCC. | 3 年前 | |
[gcov][test] Add -dumpdir ./ These tests rely on an unintended behavior that when the driver performs both compilation and linking phases, the .gcno & .gcda files are placed in PWD. The behavior will be fixed to respect -o (match -ftime-trace, -gsplit-dwarf, and GCC). Add -dumpdir ./ so that the tests will work with or without the behavior change, and make it easy to compare the coverage behavior with GCC. | 3 年前 | |
[gcov][test] Add -dumpdir ./ These tests rely on an unintended behavior that when the driver performs both compilation and linking phases, the .gcno & .gcda files are placed in PWD. The behavior will be fixed to respect -o (match -ftime-trace, -gsplit-dwarf, and GCC). Add -dumpdir ./ so that the tests will work with or without the behavior change, and make it easy to compare the coverage behavior with GCC. | 3 年前 | |
[gcov][test] Add -dumpdir ./ These tests rely on an unintended behavior that when the driver performs both compilation and linking phases, the .gcno & .gcda files are placed in PWD. The behavior will be fixed to respect -o (match -ftime-trace, -gsplit-dwarf, and GCC). Add -dumpdir ./ so that the tests will work with or without the behavior change, and make it easy to compare the coverage behavior with GCC. | 3 年前 | |
[gcov][test] Add -dumpdir ./ These tests rely on an unintended behavior that when the driver performs both compilation and linking phases, the .gcno & .gcda files are placed in PWD. The behavior will be fixed to respect -o (match -ftime-trace, -gsplit-dwarf, and GCC). Add -dumpdir ./ so that the tests will work with or without the behavior change, and make it easy to compare the coverage behavior with GCC. | 3 年前 | |
Revert "XFAIL some PGO tests on AIX until the new linker becomes publicly available." AIX 7.2 TL5 SP4 and AIX 7.3 TL0 SP2 have been released as of now. The linker in these OS versions recognizes and properly supports __start_SECNAME and __stop_SECNAME symbols which are needed for PGO. This reverts commit 93bb2f16e85d2d4c8d3ddadebd99fc0fe26d974b. | 3 年前 | |
Revert "XFAIL some PGO tests on AIX until the new linker becomes publicly available." AIX 7.2 TL5 SP4 and AIX 7.3 TL0 SP2 have been released as of now. The linker in these OS versions recognizes and properly supports __start_SECNAME and __stop_SECNAME symbols which are needed for PGO. This reverts commit 93bb2f16e85d2d4c8d3ddadebd99fc0fe26d974b. | 3 年前 | |
[InstrProf] Add options to profile function groups Add two options, -fprofile-function-groups=N and -fprofile-selected-function-group=i used to partition functions into N groups and only instrument the functions in group i. Similar options were added to xray in https://reviews.llvm.org/D87953 and the goal is the same; to reduce instrumented size overhead by spreading the overhead across multiple builds. Raw profiles from different groups can be added like normal using the llvm-profdata merge command. Reviewed By: ianlevesque Differential Revision: https://reviews.llvm.org/D129594 | 3 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
[profile] Convert tests to check 'target=...' Part of the project to eliminate special handling for triples in lit expressions. | 3 年前 | |
[profile][test] Delete profraw directory so that tests are immune to format version upgrade | 5 年前 | |
[Profile] Allow online merging with debug info correlation. When using debug info correlation, value profiling needs to be switched off. So, we are only merging counter sections. In that case the existance of data section is just used to provide an extra check in case of corrupted profile. This patch performs counter merging by iterating the counter section by counter size and add them together. Reviewed By: ellis, MaskRay Differential Revision: https://reviews.llvm.org/D157632 | 2 年前 | |
[compiler-rt] [test] [profile] Generalize existing MSVC XFAILs to cover mingw too Differential Revision: https://reviews.llvm.org/D148167 | 3 年前 | |
[Profile] Allow online merging with debug info correlation. When using debug info correlation, value profiling needs to be switched off. So, we are only merging counter sections. In that case the existance of data section is just used to provide an extra check in case of corrupted profile. This patch performs counter merging by iterating the counter section by counter size and add them together. Reviewed By: ellis, MaskRay Differential Revision: https://reviews.llvm.org/D157632 | 2 年前 | |
[profile] Convert tests to check 'target=...' Part of the project to eliminate special handling for triples in lit expressions. | 3 年前 | |
[compiler-rt] [test] [profile] Generalize existing MSVC XFAILs to cover mingw too Differential Revision: https://reviews.llvm.org/D148167 | 3 年前 | |
[profile] Convert tests to check 'target=...' Part of the project to eliminate special handling for triples in lit expressions. | 3 年前 | |
[profile] Convert tests to check 'target=...' Part of the project to eliminate special handling for triples in lit expressions. | 3 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
Revert "XFAIL some PGO tests on AIX until the new linker becomes publicly available." AIX 7.2 TL5 SP4 and AIX 7.3 TL0 SP2 have been released as of now. The linker in these OS versions recognizes and properly supports __start_SECNAME and __stop_SECNAME symbols which are needed for PGO. This reverts commit 93bb2f16e85d2d4c8d3ddadebd99fc0fe26d974b. | 3 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
[profile] Convert tests to check 'target=...' Part of the project to eliminate special handling for triples in lit expressions. | 3 年前 | |
[compiler-rt][profile] Enable profile tests for AIX This patch enable profile test for supported options on AIX. Reviewed By: w2yehia Differential Revision: https://reviews.llvm.org/D110945 | 4 年前 | |
[compiler-rt][profile] Enable profile tests for AIX This patch enable profile test for supported options on AIX. Reviewed By: w2yehia Differential Revision: https://reviews.llvm.org/D110945 | 4 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
[InstrProf] No linkage prefixes in IRPGO names (#76994) Change the format of IRPGO counter names to [<filepath>;]<mangled-name> which is computed by GlobalValue::getGlobalIdentifier() to fix #74565. In fe051934cbb0aaf25d960d7d45305135635d650b (https://reviews.llvm.org/D156569) the format of IRPGO counter names was changed to be [<filepath>;]<linkage-name> where <linkage-name> is basically F.getName() with some prefix, e.g., _ or l_ on Mach-O (yes, it is confusing that <linkage-name> is computed with Mangler().getNameWithPrefix() while <mangled-name> is just F.getName()). We discovered in #74565 that this causes some missed import issues on some targets and #74008 is a partial fix. Since <mangled-name> may not match the <linkage-name> on some targets like Mach-O, we will need to post-process the output of llvm-profdata order before passing to the linker via -order_file. Profiles generated after fe051934cbb0aaf25d960d7d45305135635d650b will become stale after this diff, but I think this is acceptable since that patch landed after the LLVM 18 cut which hasn't been released yet. | 2 年前 | |
[InstrProf][Temporal] Add weight field to traces As discussed in [0], add a weight field to temporal profiling traces found in profiles. This allows users to use the --weighted-input= flag in the llvm-profdata merge command to weight traces from different scenarios differently. Note that this is a breaking change, but since [1] landed very recently and there is no way to "use" this trace data, there should be no users of this feature. We believe it is acceptable to land this change without bumping the profile format version. [0] https://reviews.llvm.org/D147812#4259507 [1] https://reviews.llvm.org/D147287 Reviewed By: snehasish Differential Revision: https://reviews.llvm.org/D148150 | 3 年前 | |
[compiler-rt] [test] [profile] Avoid issues with an implicit .exe suffix Mingw toolchains implicitly add an .exe suffix if the output linked file doesn't have a suffix. In many cases the extra suffix doesn't cause any issues, but in some tests, this discrepancy between expected output file name and actual output file does affect the tests. In one test, a rm command fails to remove the executable since it doesn't have the expected name. By failing to remove the executable, the later llvm-profdata command tries to read the executable as if it was a profile data file. In another test, when the Python executor executes commands, it can resolve executable names without the extra .exe suffix for absolute paths (when most binaries are executed as e.g. "%t/foo"), but it fails to resolve the executables for relative paths such as "./foo". Making the paths absolute by using %t here shouldn't affect what the test tries to validate. Differential Revision: https://reviews.llvm.org/D148169 | 3 年前 | |
[PGO] Don't reference functions unless value profiling is enabled This reduces the size of chrome.dll.pdb built with optimizations, coverage, and line table info from 4,690,210,816 to 2,181,128,192, which makes it possible to fit under the 4GB limit. This change can greatly reduce binary size in coverage builds, which do not need value profiling. IR PGO builds are unaffected. There is a minor behavior change for frontend PGO. PGO and coverage both use InstrProfiling to create profile data with counters. PGO records the address of each function in the __profd_ global. It is used later to map runtime function pointer values back to source-level function names. Coverage does not appear to use this information. Recording the address of every function with code coverage drastically increases code size. Consider this program: void foo(); void bar(); inline void inlineMe(int x) { if (x > 0) foo(); else bar(); } int getVal(); int main() { inlineMe(getVal()); } With code coverage, the InstrProfiling pass runs before inlining, and it captures the address of inlineMe in the __profd_ global. This greatly increases code size, because now the compiler can no longer delete trivial code. One downside to this approach is that users of frontend PGO must apply the -mllvm -enable-value-profiling flag globally in TUs that enable PGO. Otherwise, some inline virtual method addresses may not be recorded and will not be able to be promoted. My assumption is that this mllvm flag is not popular, and most frontend PGO users don't enable it. Differential Revision: https://reviews.llvm.org/D102818 | 5 年前 | |
[Profile] Test cleanup -- use new lit var for IR PGO tests /NFC llvm-svn: 276036 | 9 年前 | |
[Profile] Fix value profiler eviction bug Differential Revision: https://reviews.llvm.org/D27224 llvm-svn: 288204 | 9 年前 | |
[PGO] Don't reference functions unless value profiling is enabled This reduces the size of chrome.dll.pdb built with optimizations, coverage, and line table info from 4,690,210,816 to 2,181,128,192, which makes it possible to fit under the 4GB limit. This change can greatly reduce binary size in coverage builds, which do not need value profiling. IR PGO builds are unaffected. There is a minor behavior change for frontend PGO. PGO and coverage both use InstrProfiling to create profile data with counters. PGO records the address of each function in the __profd_ global. It is used later to map runtime function pointer values back to source-level function names. Coverage does not appear to use this information. Recording the address of every function with code coverage drastically increases code size. Consider this program: void foo(); void bar(); inline void inlineMe(int x) { if (x > 0) foo(); else bar(); } int getVal(); int main() { inlineMe(getVal()); } With code coverage, the InstrProfiling pass runs before inlining, and it captures the address of inlineMe in the __profd_ global. This greatly increases code size, because now the compiler can no longer delete trivial code. One downside to this approach is that users of frontend PGO must apply the -mllvm -enable-value-profiling flag globally in TUs that enable PGO. Otherwise, some inline virtual method addresses may not be recorded and will not be able to be promoted. My assumption is that this mllvm flag is not popular, and most frontend PGO users don't enable it. Differential Revision: https://reviews.llvm.org/D102818 | 5 年前 | |
[profile] Delete stale profiles in test/profile/instrprof-value-prof.test, NFC | 6 年前 | |
[profile] Enabled test on windows Works with D34797 | 5 年前 | |
[compiler-rt] [test] [profile] Mark the without-libc test as unsupported on mingw Mingw toolchains always end up referencing the malloc symbol due to the CRT startup files. Differential Revision: https://reviews.llvm.org/D148166 | 3 年前 | |
Reland "[TypeProf][InstrPGO] Introduce raw and instr profile format change for type profiling." (#82711) New change on top of [reviewed patch](https://github.com/llvm/llvm-project/pull/81691) are [in commits after this one](https://github.com/llvm/llvm-project/pull/82711/commits/d0757f46b3e3865b5f7c552bc0744309a363e0ac). Previous commits are restored from the remote branch with timestamps. 1. Fix build breakage for non-ELF platforms, by defining the missing functions { __llvm_profile_begin_vtables, __llvm_profile_end_vtables, __llvm_profile_begin_vtabnames , __llvm_profile_end_vtabnames} everywhere. * Tested on mac laptop (for darwins) and Windows. Specifically, functions in InstrProfilingPlatformWindows.c returns NULL to make it more explicit that type prof isn't supported; see comments for the reason. * For the rest (AIX, other), mostly follow existing examples (like this [one](https://github.com/llvm/llvm-project/commit/f95b2f1acf1171abb0d00089fd4c9238753847e3)) 2. Rename __llvm_prf_vtabnames -> __llvm_prf_vns for shorter section name, and make returned pointers [const](https://github.com/llvm/llvm-project/pull/82711/commits/a825d2a4ec00f07772a373091a702f149c3b0c34#diff-4de780ce726d76b7abc9d3353aef95013e7b21e7bda01be8940cc6574fb0b5ffR120-R121) **Original Description** * Raw profile format - Header: records the byte size of compressed vtable names, and the number of profiled vtable entries (call it VTableProfData). Header also records padded bytes of each section. - Payload: adds a section for compressed vtable names, and a section to store VTableProfData. Both sections are padded so the size is a multiple of 8. * Indexed profile format - Header: records the byte offset of compressed vtable names. - Payload: adds a section to store compressed vtable names. This section is used by llvm-profdata to show the list of vtables profiled for an instrumented site. [The originally reviewed patch](https://github.com/llvm/llvm-project/pull/66825) will have profile reader/write change and llvm-profdata change. - To ensure this PR has all the necessary profile format change along with profile version bump, created a copy of the originally reviewed patch in https://github.com/llvm/llvm-project/pull/80761. The copy doesn't have profile format change, but it has the set of tests which covers type profile generation, profile read and profile merge. Tests pass there. rfc in https://discourse.llvm.org/t/rfc-dynamic-type-profiling-and-optimizations-in-llvm/74600 --------- Co-authored-by: modiking <modiking213@gmail.com> | 2 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
Revert "Use uint64_t for branch weights instead of uint32_t" This reverts commit 10f2a0d662d8d72eaac48d3e9b31ca8dc90df5a4. More uint64_t overflows. | 5 年前 | |
[NFC][Py Reformat] Reformat python files in the rest of the dirs This is an ongoing series of commits that are reformatting our Python code. This catches the last of the python files to reformat. Since they where so few I bunched them together. Reformatting is done with black. If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run git checkout --ours <yourfile> and then reformat it with black. If you run into any problems, post to discourse about it and we will try to help. RFC Thread below: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Reviewed By: jhenderson, #libc, Mordante, sivachandra Differential Revision: https://reviews.llvm.org/D150784 | 3 年前 | |
Reland: [llvm-cov] Look up object files using debuginfod Reviewed By: gulfem Differential Revision: https://reviews.llvm.org/D136702 | 3 年前 | |
[builtins][test] Delete unneeded file headers We don't add file headers to tests. The comments are useless as well - their purpose can be easily inferred from the filenames. | 6 年前 | |
Revert "XFAIL some PGO tests on AIX until the new linker becomes publicly available." AIX 7.2 TL5 SP4 and AIX 7.3 TL0 SP2 have been released as of now. The linker in these OS versions recognizes and properly supports __start_SECNAME and __stop_SECNAME symbols which are needed for PGO. This reverts commit 93bb2f16e85d2d4c8d3ddadebd99fc0fe26d974b. | 3 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 7 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 10 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 2 年前 | ||
| 10 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 9 年前 | ||
| 9 年前 | ||
| 5 年前 | ||
| 6 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 6 年前 | ||
| 3 年前 |