[llvm-branch-commits] [llvm] [BOLT] Add BOLT Address Translation documentation (PR #76898)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76898 >From 5a55a403683003bfa937a563092f45cc4fbfb578 Mon Sep 17 00:00:00 2001 From: Amir Ayupov Date: Thu, 4 Jan 2024 07:22:58 -0800 Subject: [PATCH] Fix table rendering Created using spr 1.3.4 --- bolt/docs/BAT.md | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bolt/docs/BAT.md b/bolt/docs/BAT.md index 17845b906afe76..22986f7db2b17f 100644 --- a/bolt/docs/BAT.md +++ b/bolt/docs/BAT.md @@ -12,7 +12,7 @@ information. This information enables mapping the profile back from optimized binary onto the original binary. # Usage -`--enable-bat` flag controls the generation of BAT section. Sampled profile +`--enable-bat` flag controls the generation of BAT section. Sampled profile needs to be passed along with the optimized binary containing BAT section to `perf2bolt` which reads BAT section and produces fdata profile for the original binary. Note that YAML profile generation is not supported since BAT doesn't @@ -30,14 +30,15 @@ BAT section is created from `BoltAddressTranslation` class which captures address translation information provided by BOLT linker. It is then encoded as a note section in the output binary. -During profile conversion when BAT-enabled binary is passed to perf2bolt, +During profile conversion when BAT-enabled binary is passed to perf2bolt, `BoltAddressTranslation` class is populated from BAT section. The class is then queried by `DataAggregator` during sample processing to reconstruct addresses/ offsets in the input binary. ## Encoding format -The encoding is specified in bolt/include/bolt/Profile/BoltAddressTranslation.h -and bolt/lib/Profile/BoltAddressTranslation.cpp. +The encoding is specified in +[BoltAddressTranslation.h](/bolt/include/bolt/Profile/BoltAddressTranslation.h) +and [BoltAddressTranslation.cpp](/bolt/lib/Profile/BoltAddressTranslation.cpp). ### Layout The general layout is as follows: @@ -67,6 +68,7 @@ The header is followed by Functions table with `NumFuncs` entries. | -- | --| --- | | `Address` | 8b | Function address in the output binary | | `NumEntries` | 4b | Number of address translation entries for a function | + Function header is followed by `NumEntries` pairs of offsets for current function. ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Encode BAT using ULEB128 (PR #76899)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76899 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Delta-encode offsets in BAT (PR #76900)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76900 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Delta-encode offsets in BAT (PR #76900)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76900 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Encode BAT using ULEB128 (PR #76899)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76899 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Delta-encode function start addresses in BAT (PR #76902)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76902 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Embed cold mapping info into function entry in BAT (PR #76903)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76903 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Embed cold mapping info into function entry in BAT (PR #76903)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76903 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Delta-encode function start addresses in BAT (PR #76902)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76902 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Use continuous output addresses in delta encoding in BAT (PR #76904)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76904 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Use continuous output addresses in delta encoding in BAT (PR #76904)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76904 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Deduplicate equal offsets in BAT (PR #76905)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76905 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT][NFC] Pass BF/BB hashes to BAT (PR #76906)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76906 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT][NFC] Pass BF/BB hashes to BAT (PR #76906)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76906 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Deduplicate equal offsets in BAT (PR #76905)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76905 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Write and parse BF/BB hashes in BAT (PR #76907)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76907 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Write and parse BF/BB hashes in BAT (PR #76907)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76907 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT][NFC] Const-ify DataAggregator::getLocationName (PR #76908)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76908 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT][NFC] Const-ify DataAggregator::getLocationName (PR #76908)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76908 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT][NFC] Expose YAMLProfileWriter::convert function (PR #76909)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76909 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT][NFC] Expose YAMLProfileWriter::convert function (PR #76909)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76909 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Output YAML profile in BAT mode (PR #76910)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76910 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Output YAML profile in BAT mode (PR #76910)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76910 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Emit intra-function control flow in YAMLBAT (PR #76911)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76911 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Emit intra-function control flow in YAMLBAT (PR #76911)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76911 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Add CallSiteInfo entries in YAMLBAT (PR #76896)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76896 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [BOLT] Add CallSiteInfo entries in YAMLBAT (PR #76896)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76896 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT] Add BOLT Address Translation documentation (PR #76898)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76898 >From 5a55a403683003bfa937a563092f45cc4fbfb578 Mon Sep 17 00:00:00 2001 From: Amir Ayupov Date: Thu, 4 Jan 2024 07:22:58 -0800 Subject: [PATCH] Fix table rendering Created using spr 1.3.4 --- bolt/docs/BAT.md | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bolt/docs/BAT.md b/bolt/docs/BAT.md index 17845b906afe76..22986f7db2b17f 100644 --- a/bolt/docs/BAT.md +++ b/bolt/docs/BAT.md @@ -12,7 +12,7 @@ information. This information enables mapping the profile back from optimized binary onto the original binary. # Usage -`--enable-bat` flag controls the generation of BAT section. Sampled profile +`--enable-bat` flag controls the generation of BAT section. Sampled profile needs to be passed along with the optimized binary containing BAT section to `perf2bolt` which reads BAT section and produces fdata profile for the original binary. Note that YAML profile generation is not supported since BAT doesn't @@ -30,14 +30,15 @@ BAT section is created from `BoltAddressTranslation` class which captures address translation information provided by BOLT linker. It is then encoded as a note section in the output binary. -During profile conversion when BAT-enabled binary is passed to perf2bolt, +During profile conversion when BAT-enabled binary is passed to perf2bolt, `BoltAddressTranslation` class is populated from BAT section. The class is then queried by `DataAggregator` during sample processing to reconstruct addresses/ offsets in the input binary. ## Encoding format -The encoding is specified in bolt/include/bolt/Profile/BoltAddressTranslation.h -and bolt/lib/Profile/BoltAddressTranslation.cpp. +The encoding is specified in +[BoltAddressTranslation.h](/bolt/include/bolt/Profile/BoltAddressTranslation.h) +and [BoltAddressTranslation.cpp](/bolt/lib/Profile/BoltAddressTranslation.cpp). ### Layout The general layout is as follows: @@ -67,6 +68,7 @@ The header is followed by Functions table with `NumFuncs` entries. | -- | --| --- | | `Address` | 8b | Function address in the output binary | | `NumEntries` | 4b | Number of address translation entries for a function | + Function header is followed by `NumEntries` pairs of offsets for current function. ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] [libc] [llvm] [clang-tools-extra] [libcxx] [clang] [mlir] [BOLT] Add BOLT Address Translation documentation (PR #76898)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76898 >From 5a55a403683003bfa937a563092f45cc4fbfb578 Mon Sep 17 00:00:00 2001 From: Amir Ayupov Date: Thu, 4 Jan 2024 07:22:58 -0800 Subject: [PATCH] Fix table rendering Created using spr 1.3.4 --- bolt/docs/BAT.md | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bolt/docs/BAT.md b/bolt/docs/BAT.md index 17845b906afe76..22986f7db2b17f 100644 --- a/bolt/docs/BAT.md +++ b/bolt/docs/BAT.md @@ -12,7 +12,7 @@ information. This information enables mapping the profile back from optimized binary onto the original binary. # Usage -`--enable-bat` flag controls the generation of BAT section. Sampled profile +`--enable-bat` flag controls the generation of BAT section. Sampled profile needs to be passed along with the optimized binary containing BAT section to `perf2bolt` which reads BAT section and produces fdata profile for the original binary. Note that YAML profile generation is not supported since BAT doesn't @@ -30,14 +30,15 @@ BAT section is created from `BoltAddressTranslation` class which captures address translation information provided by BOLT linker. It is then encoded as a note section in the output binary. -During profile conversion when BAT-enabled binary is passed to perf2bolt, +During profile conversion when BAT-enabled binary is passed to perf2bolt, `BoltAddressTranslation` class is populated from BAT section. The class is then queried by `DataAggregator` during sample processing to reconstruct addresses/ offsets in the input binary. ## Encoding format -The encoding is specified in bolt/include/bolt/Profile/BoltAddressTranslation.h -and bolt/lib/Profile/BoltAddressTranslation.cpp. +The encoding is specified in +[BoltAddressTranslation.h](/bolt/include/bolt/Profile/BoltAddressTranslation.h) +and [BoltAddressTranslation.cpp](/bolt/lib/Profile/BoltAddressTranslation.cpp). ### Layout The general layout is as follows: @@ -67,6 +68,7 @@ The header is followed by Functions table with `NumFuncs` entries. | -- | --| --- | | `Address` | 8b | Function address in the output binary | | `NumEntries` | 4b | Number of address translation entries for a function | + Function header is followed by `NumEntries` pairs of offsets for current function. ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] [clang-tools-extra] [lldb] [llvm] [libc] [mlir] [clang] [BOLT] Encode BAT using ULEB128 (PR #76899)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76899 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] [libc] [llvm] [clang-tools-extra] [libcxx] [clang] [mlir] [BOLT] Delta-encode offsets in BAT (PR #76900)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76900 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT] Delta-encode offsets in BAT (PR #76900)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76900 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [mlir] [lldb] [clang-tools-extra] [libc] [libcxx] [llvm] [BOLT] Encode BAT using ULEB128 (PR #76899)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76899 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [mlir] [lldb] [clang-tools-extra] [libc] [libcxx] [llvm] [BOLT] Delta-encode function start addresses in BAT (PR #76902)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76902 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] [clang-tools-extra] [lldb] [llvm] [libc] [mlir] [clang] [BOLT] Delta-encode function start addresses in BAT (PR #76902)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76902 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT] Embed cold mapping info into function entry in BAT (PR #76903)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76903 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] [libc] [llvm] [clang-tools-extra] [libcxx] [clang] [mlir] [BOLT] Embed cold mapping info into function entry in BAT (PR #76903)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76903 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] [clang-tools-extra] [lldb] [llvm] [libc] [mlir] [clang] [BOLT] Use continuous output addresses in delta encoding in BAT (PR #76904)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76904 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [mlir] [lldb] [clang-tools-extra] [libc] [libcxx] [llvm] [BOLT] Use continuous output addresses in delta encoding in BAT (PR #76904)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76904 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] [libc] [llvm] [clang-tools-extra] [libcxx] [clang] [mlir] [BOLT] Deduplicate equal offsets in BAT (PR #76905)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76905 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT] Deduplicate equal offsets in BAT (PR #76905)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76905 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [libcxx] [clang-tools-extra] [libc] [llvm] [mlir] [lldb] [BOLT][NFC] Pass BF/BB hashes to BAT (PR #76906)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76906 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [mlir] [lldb] [clang-tools-extra] [libc] [libcxx] [llvm] [BOLT][NFC] Pass BF/BB hashes to BAT (PR #76906)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76906 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [libcxx] [clang-tools-extra] [libc] [llvm] [mlir] [lldb] [BOLT] Write and parse BF/BB hashes in BAT (PR #76907)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76907 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] [clang-tools-extra] [lldb] [llvm] [libc] [mlir] [clang] [BOLT] Write and parse BF/BB hashes in BAT (PR #76907)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76907 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT][NFC] Const-ify DataAggregator::getLocationName (PR #76908)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76908 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [mlir] [lldb] [clang-tools-extra] [libc] [libcxx] [llvm] [BOLT][NFC] Const-ify DataAggregator::getLocationName (PR #76908)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76908 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] [clang-tools-extra] [lldb] [llvm] [libc] [mlir] [clang] [BOLT][NFC] Expose YAMLProfileWriter::convert function (PR #76909)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76909 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [libcxx] [clang-tools-extra] [libc] [llvm] [mlir] [lldb] [BOLT][NFC] Expose YAMLProfileWriter::convert function (PR #76909)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76909 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT] Output YAML profile in BAT mode (PR #76910)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76910 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [mlir] [lldb] [clang-tools-extra] [libc] [libcxx] [llvm] [BOLT] Output YAML profile in BAT mode (PR #76910)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76910 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [libcxx] [clang-tools-extra] [libc] [llvm] [mlir] [lldb] [BOLT] Emit intra-function control flow in YAMLBAT (PR #76911)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76911 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libcxx] [clang-tools-extra] [lldb] [llvm] [libc] [mlir] [clang] [BOLT] Emit intra-function control flow in YAMLBAT (PR #76911)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76911 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT] Add CallSiteInfo entries in YAMLBAT (PR #76896)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76896 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [mlir] [lldb] [clang-tools-extra] [libc] [libcxx] [llvm] [BOLT] Add CallSiteInfo entries in YAMLBAT (PR #76896)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76896 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang-tools-extra] [mlir] [lldb] [libc] [libcxx] [clang] [llvm] [BOLT] Add BOLT Address Translation documentation (PR #76898)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76898 >From 5a55a403683003bfa937a563092f45cc4fbfb578 Mon Sep 17 00:00:00 2001 From: Amir Ayupov Date: Thu, 4 Jan 2024 07:22:58 -0800 Subject: [PATCH] Fix table rendering Created using spr 1.3.4 --- bolt/docs/BAT.md | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bolt/docs/BAT.md b/bolt/docs/BAT.md index 17845b906afe76..22986f7db2b17f 100644 --- a/bolt/docs/BAT.md +++ b/bolt/docs/BAT.md @@ -12,7 +12,7 @@ information. This information enables mapping the profile back from optimized binary onto the original binary. # Usage -`--enable-bat` flag controls the generation of BAT section. Sampled profile +`--enable-bat` flag controls the generation of BAT section. Sampled profile needs to be passed along with the optimized binary containing BAT section to `perf2bolt` which reads BAT section and produces fdata profile for the original binary. Note that YAML profile generation is not supported since BAT doesn't @@ -30,14 +30,15 @@ BAT section is created from `BoltAddressTranslation` class which captures address translation information provided by BOLT linker. It is then encoded as a note section in the output binary. -During profile conversion when BAT-enabled binary is passed to perf2bolt, +During profile conversion when BAT-enabled binary is passed to perf2bolt, `BoltAddressTranslation` class is populated from BAT section. The class is then queried by `DataAggregator` during sample processing to reconstruct addresses/ offsets in the input binary. ## Encoding format -The encoding is specified in bolt/include/bolt/Profile/BoltAddressTranslation.h -and bolt/lib/Profile/BoltAddressTranslation.cpp. +The encoding is specified in +[BoltAddressTranslation.h](/bolt/include/bolt/Profile/BoltAddressTranslation.h) +and [BoltAddressTranslation.cpp](/bolt/lib/Profile/BoltAddressTranslation.cpp). ### Layout The general layout is as follows: @@ -67,6 +68,7 @@ The header is followed by Functions table with `NumFuncs` entries. | -- | --| --- | | `Address` | 8b | Function address in the output binary | | `NumEntries` | 4b | Number of address translation entries for a function | + Function header is followed by `NumEntries` pairs of offsets for current function. ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT] Encode BAT using ULEB128 (PR #76899)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76899 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libc] [lldb] [clang] [llvm] [clang-tools-extra] [mlir] [libcxx] [BOLT] Add BOLT Address Translation documentation (PR #76898)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76898 >From 5a55a403683003bfa937a563092f45cc4fbfb578 Mon Sep 17 00:00:00 2001 From: Amir Ayupov Date: Thu, 4 Jan 2024 07:22:58 -0800 Subject: [PATCH] Fix table rendering Created using spr 1.3.4 --- bolt/docs/BAT.md | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bolt/docs/BAT.md b/bolt/docs/BAT.md index 17845b906afe76..22986f7db2b17f 100644 --- a/bolt/docs/BAT.md +++ b/bolt/docs/BAT.md @@ -12,7 +12,7 @@ information. This information enables mapping the profile back from optimized binary onto the original binary. # Usage -`--enable-bat` flag controls the generation of BAT section. Sampled profile +`--enable-bat` flag controls the generation of BAT section. Sampled profile needs to be passed along with the optimized binary containing BAT section to `perf2bolt` which reads BAT section and produces fdata profile for the original binary. Note that YAML profile generation is not supported since BAT doesn't @@ -30,14 +30,15 @@ BAT section is created from `BoltAddressTranslation` class which captures address translation information provided by BOLT linker. It is then encoded as a note section in the output binary. -During profile conversion when BAT-enabled binary is passed to perf2bolt, +During profile conversion when BAT-enabled binary is passed to perf2bolt, `BoltAddressTranslation` class is populated from BAT section. The class is then queried by `DataAggregator` during sample processing to reconstruct addresses/ offsets in the input binary. ## Encoding format -The encoding is specified in bolt/include/bolt/Profile/BoltAddressTranslation.h -and bolt/lib/Profile/BoltAddressTranslation.cpp. +The encoding is specified in +[BoltAddressTranslation.h](/bolt/include/bolt/Profile/BoltAddressTranslation.h) +and [BoltAddressTranslation.cpp](/bolt/lib/Profile/BoltAddressTranslation.cpp). ### Layout The general layout is as follows: @@ -67,6 +68,7 @@ The header is followed by Functions table with `NumFuncs` entries. | -- | --| --- | | `Address` | 8b | Function address in the output binary | | `NumEntries` | 4b | Number of address translation entries for a function | + Function header is followed by `NumEntries` pairs of offsets for current function. ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [libcxx] [libc] [llvm] [mlir] [clang-tools-extra] [lldb] [BOLT] Encode BAT using ULEB128 (PR #76899)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76899 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang-tools-extra] [mlir] [lldb] [libc] [libcxx] [clang] [llvm] [BOLT] Delta-encode offsets in BAT (PR #76900)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76900 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libc] [lldb] [clang] [llvm] [clang-tools-extra] [mlir] [libcxx] [BOLT] Delta-encode offsets in BAT (PR #76900)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76900 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT] Delta-encode function start addresses in BAT (PR #76902)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76902 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [libcxx] [libc] [llvm] [mlir] [clang-tools-extra] [lldb] [BOLT] Delta-encode function start addresses in BAT (PR #76902)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76902 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] [libc] [llvm] [clang-tools-extra] [libcxx] [clang] [mlir] [BOLT] Embed cold mapping info into function entry in BAT (PR #76903)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76903 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libc] [lldb] [clang] [llvm] [clang-tools-extra] [mlir] [libcxx] [BOLT] Embed cold mapping info into function entry in BAT (PR #76903)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76903 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT] Use continuous output addresses in delta encoding in BAT (PR #76904)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76904 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang-tools-extra] [mlir] [lldb] [libc] [libcxx] [clang] [llvm] [BOLT] Use continuous output addresses in delta encoding in BAT (PR #76904)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76904 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libc] [lldb] [clang] [llvm] [clang-tools-extra] [mlir] [libcxx] [BOLT] Deduplicate equal offsets in BAT (PR #76905)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76905 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT][NFC] Pass BF/BB hashes to BAT (PR #76906)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76906 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [lldb] [libcxx] [llvm] [mlir] [clang-tools-extra] [libc] [BOLT][NFC] Pass BF/BB hashes to BAT (PR #76906)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76906 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] [libc] [llvm] [clang-tools-extra] [libcxx] [clang] [mlir] [BOLT] Deduplicate equal offsets in BAT (PR #76905)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76905 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] [libc] [llvm] [clang-tools-extra] [libcxx] [clang] [mlir] [BOLT] Write and parse BF/BB hashes in BAT (PR #76907)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76907 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [lldb] [libcxx] [llvm] [mlir] [clang-tools-extra] [libc] [BOLT][NFC] Const-ify DataAggregator::getLocationName (PR #76908)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76908 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [mlir] [llvm] [clang] [libcxx] [lldb] [libc] [clang-tools-extra] [BOLT] Write and parse BF/BB hashes in BAT (PR #76907)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76907 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT][NFC] Const-ify DataAggregator::getLocationName (PR #76908)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76908 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [mlir] [llvm] [clang] [libcxx] [lldb] [libc] [clang-tools-extra] [BOLT][NFC] Expose YAMLProfileWriter::convert function (PR #76909)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76909 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [lldb] [libcxx] [llvm] [mlir] [clang-tools-extra] [libc] [BOLT] Output YAML profile in BAT mode (PR #76910)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76910 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [clang] [libcxx] [clang-tools-extra] [mlir] [lldb] [libc] [BOLT] Emit intra-function control flow in YAMLBAT (PR #76911)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76911 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [lldb] [libcxx] [llvm] [mlir] [clang-tools-extra] [libc] [BOLT] Add CallSiteInfo entries in YAMLBAT (PR #76896)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76896 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang-tools-extra] [mlir] [lldb] [libc] [libcxx] [clang] [llvm] [BOLT] Add CallSiteInfo entries in YAMLBAT (PR #76896)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76896 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang-tools-extra] [mlir] [lldb] [libc] [libcxx] [clang] [llvm] [BOLT] Output YAML profile in BAT mode (PR #76910)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76910 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] [libc] [llvm] [clang-tools-extra] [libcxx] [clang] [mlir] [BOLT] Emit intra-function control flow in YAMLBAT (PR #76911)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76911 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] [libc] [llvm] [clang-tools-extra] [libcxx] [clang] [mlir] [BOLT][NFC] Expose YAMLProfileWriter::convert function (PR #76909)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76909 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] d63f848 - Revert "[Clang][SME] Add IsStreamingOrSVE2p1 (#75958)"
Author: Sam Tebbs Date: 2024-01-04T16:52:31Z New Revision: d63f848e75b66ae2e5915ada4bd5b370e05f9829 URL: https://github.com/llvm/llvm-project/commit/d63f848e75b66ae2e5915ada4bd5b370e05f9829 DIFF: https://github.com/llvm/llvm-project/commit/d63f848e75b66ae2e5915ada4bd5b370e05f9829.diff LOG: Revert "[Clang][SME] Add IsStreamingOrSVE2p1 (#75958)" This reverts commit 8f8152091cae186b35f73331df13f36b0f905eb4. Added: Modified: clang/include/clang/Basic/arm_sve.td clang/include/clang/Basic/arm_sve_sme_incl.td clang/lib/Basic/Targets/AArch64.h clang/lib/Sema/SemaChecking.cpp clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_revd.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmlsl.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_cntp.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_fclamp.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_ld1.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_pext.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_pfalse.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_psel.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_sclamp.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_stnt1.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_uclamp.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_while_pn.c clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_imm.cpp clang/utils/TableGen/SveEmitter.cpp Removed: clang/test/Sema/aarch64-sme2-sve2p1-diagnostics.c diff --git a/clang/include/clang/Basic/arm_sve.td b/clang/include/clang/Basic/arm_sve.td index 17ee82d9304ffe..91f62c4c76339d 100644 --- a/clang/include/clang/Basic/arm_sve.td +++ b/clang/include/clang/Basic/arm_sve.td @@ -1296,9 +1296,9 @@ def SVCREATE_3_BF16 : SInst<"svcreate3[_{d}]", "3ddd", "b", MergeNone, "", [IsT def SVCREATE_4_BF16 : SInst<"svcreate4[_{d}]", "4", "b", MergeNone, "", [IsTupleCreate]>; } -let TargetGuard = "sve2p1|sme2" in { - def SVCREATE_2_B : SInst<"svcreate2[_{d}]", "2dd", "Pc", MergeNone, "", [IsTupleCreate, IsStreamingCompatible]>; - def SVCREATE_4_B : SInst<"svcreate4[_{d}]", "4", "Pc", MergeNone, "", [IsTupleCreate, IsStreamingCompatible]>; +let TargetGuard = "sve2p1" in { + def SVCREATE_2_B : SInst<"svcreate2[_{d}]", "2dd", "Pc", MergeNone, "", [IsTupleCreate]>; + def SVCREATE_4_B : SInst<"svcreate4[_{d}]", "4", "Pc", MergeNone, "", [IsTupleCreate]>; } @@ -1321,7 +1321,7 @@ def SVSET_3_BF16 : SInst<"svset3[_{d}]", "33id", "b", MergeNone, "", [IsTupleSet def SVSET_4_BF16 : SInst<"svset4[_{d}]", "44id", "b", MergeNone, "", [IsTupleSet], [ImmCheck<1, ImmCheck0_3>]>; } -let TargetGuard = "sve2p1|sme2" in { +let TargetGuard = "sve2p1" in { def SVGET_2_B : SInst<"svget2[_{d}]", "d2i", "Pc", MergeNone, "", [IsTupleGet], [ImmCheck<1, ImmCheck0_1>]>; def SVGET_4_B : SInst<"svget4[_{d}]", "d4i", "Pc", MergeNone, "", [IsTupleGet], [ImmCheck<1, ImmCheck0_3>]>; @@ -1976,37 +1976,39 @@ def SVFMINQV: SInst<"svminqv[_{d}]", "{Pd", "hfd", MergeNone, "aarch64_sve_fminq } let TargetGuard = "sve2p1|sme2" in { -def SVPEXT_SINGLE : SInst<"svpext_lane_{d}", "P}i", "QcQsQiQl", MergeNone, "aarch64_sve_pext", [IsStreamingOrSVE2p1], [ImmCheck<1, ImmCheck0_3>]>; -def SVPEXT_X2 : SInst<"svpext_lane_{d}_x2", "2.P}i", "QcQsQiQl", MergeNone, "aarch64_sve_pext_x2", [IsStreamingOrSVE2p1], [ImmCheck<1, ImmCheck0_1>]>; +//FIXME: Replace IsStreamingCompatible with IsStreamingOrHasSVE2p1 when available +def SVPEXT_SINGLE : SInst<"svpext_lane_{d}", "P}i", "QcQsQiQl", MergeNone, "aarch64_sve_pext", [IsStreamingCompatible], [ImmCheck<1, ImmCheck0_3>]>; +def SVPEXT_X2 : SInst<"svpext_lane_{d}_x2", "2.P}i", "QcQsQiQl", MergeNone, "aarch64_sve_pext_x2", [IsStreamingCompatible], [ImmCheck<1, ImmCheck0_1>]>; -def SVWHILEGE_COUNT : SInst<"svwhilege_{d}[_{1}]", "}lli", "QcQsQiQl", MergeNone, "aarch64_sve_whilege_{d}", [IsOverloadNone, IsStreamingOrSVE2p1], [ImmCheck<2, ImmCheck2_4_Mul2>]>; -def SVWHILEGT_COUNT : SInst<"svwhilegt_{d}[_{1}]", "}lli", "QcQsQiQl", MergeNone, "aarch64_sve_whilegt_{d}", [IsOverloadNone, IsStreamingOrSVE2p1], [ImmCheck<2, ImmCheck2_4_Mul2>]>; -def SVWHILELE_COUNT : SInst<"svwhilele_{d}[_{1}]", "}lli", "QcQsQiQl", MergeNone, "aarch64_sve_whilele_{d}", [IsOverloadNone, IsStreamingOrSVE2p1], [ImmCheck<2, ImmCheck2_4_Mul2>]>; -def SVWHILELT_COUNT : SInst<"svwhilelt_{d}[_{1}]", "}lli", "QcQsQiQl", MergeNone, "aarch64_sve_whilelt_{d}", [IsOverloadNone, IsStreamingOrSVE2p1], [ImmCheck<2, ImmCheck2_4_Mul2>]>; -def SVWHILELO_COUNT : SInst<"svwhilelt_{d}[_{1}]", "}nni", "QcQsQiQl", MergeNone, "aarch64_sve_whilelo_{d}", [IsOverloadNone, IsStreamingOrSVE2p1], [ImmCheck<2, ImmCheck2_4_Mu
[llvm-branch-commits] [libc] [llvm] [clang] [mlir] [clang-tools-extra] [lldb] [libcxx] [BOLT] Output YAML profile in BAT mode (PR #76910)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76910 >From b9173e3769ce2fefe846b0b65cef61631af94008 Mon Sep 17 00:00:00 2001 From: Amir Ayupov Date: Thu, 4 Jan 2024 09:52:26 -0800 Subject: [PATCH] Fix SaveProfile definition issue Created using spr 1.3.4 --- bolt/lib/Rewrite/RewriteInstance.cpp | 4 +--- bolt/lib/Utils/CommandLineOpts.cpp | 4 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bolt/lib/Rewrite/RewriteInstance.cpp b/bolt/lib/Rewrite/RewriteInstance.cpp index c6f38db17f093d..06f28195bb08dd 100644 --- a/bolt/lib/Rewrite/RewriteInstance.cpp +++ b/bolt/lib/Rewrite/RewriteInstance.cpp @@ -199,9 +199,7 @@ static cl::opt RelocationMode( "relocs", cl::desc("use relocations in the binary (default=autodetect)"), cl::cat(BoltCategory)); -cl::opt SaveProfile("w", - cl::desc("save recorded profile to a file"), - cl::cat(BoltOutputCategory)); +extern cl::opt SaveProfile; static cl::list SkipFunctionNames("skip-funcs", diff --git a/bolt/lib/Utils/CommandLineOpts.cpp b/bolt/lib/Utils/CommandLineOpts.cpp index a1df5de2623402..4a980a67fca378 100644 --- a/bolt/lib/Utils/CommandLineOpts.cpp +++ b/bolt/lib/Utils/CommandLineOpts.cpp @@ -163,6 +163,10 @@ cl::opt ProfileFormat( clEnumValN(PF_YAML, "yaml", "dense YAML representation")), cl::ZeroOrMore, cl::Hidden, cl::cat(BoltCategory)); +cl::opt SaveProfile("w", + cl::desc("save recorded profile to a file"), + cl::cat(BoltOutputCategory)); + cl::opt SplitEH("split-eh", cl::desc("split C++ exception handling code"), cl::Hidden, cl::cat(BoltOptCategory)); ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] [clang-tools-extra] [libcxx] [mlir] [llvm] [libc] [clang] [BOLT] Emit intra-function control flow in YAMLBAT (PR #76911)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76911 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [libc] [llvm] [clang] [mlir] [clang-tools-extra] [lldb] [libcxx] [BOLT] Emit intra-function control flow in YAMLBAT (PR #76911)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76911 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [libc] [mlir] [lldb] [clang] [libcxx] [clang-tools-extra] [BOLT] Add CallSiteInfo entries in YAMLBAT (PR #76896)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76896 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] [libc] [mlir] [clang] [clang-tools-extra] [llvm] [libcxx] [BOLT] Add CallSiteInfo entries in YAMLBAT (PR #76896)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76896 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang] [llvm] [mlir] [clang-tools-extra] [lldb] [libc] [libcxx] [BOLT] Add CallSiteInfo entries in YAMLBAT (PR #76896)
https://github.com/aaupov updated https://github.com/llvm/llvm-project/pull/76896 >From 3362e9990ee0334ab7073943b4b682764f52bc8f Mon Sep 17 00:00:00 2001 From: Amir Ayupov Date: Thu, 4 Jan 2024 10:40:04 -0800 Subject: [PATCH] Assert that a function exists Created using spr 1.3.4 --- bolt/lib/Profile/BoltAddressTranslation.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bolt/lib/Profile/BoltAddressTranslation.cpp b/bolt/lib/Profile/BoltAddressTranslation.cpp index dbc9e1702a3016..62f8b777ee91b4 100644 --- a/bolt/lib/Profile/BoltAddressTranslation.cpp +++ b/bolt/lib/Profile/BoltAddressTranslation.cpp @@ -521,8 +521,7 @@ std::unordered_map> BoltAddressTranslation::getBFBranches(uint64_t OutputAddress) const { std::unordered_map> Branches; auto FuncIt = Maps.find(OutputAddress); - if (FuncIt == Maps.end()) -return Branches; + assert(FuncIt != Maps.end()); std::vector InputOffsets; for (const auto &KV : FuncIt->second) InputOffsets.emplace_back(KV.second); ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm] [llvm-exegesis] Add support for validation counters (PR #76653)
https://github.com/boomanaiden154 updated https://github.com/llvm/llvm-project/pull/76653 >From 76f199f4fc7244c3d972736595c685d7316c5203 Mon Sep 17 00:00:00 2001 From: Aiden Grossman Date: Sat, 30 Dec 2023 18:18:12 -0800 Subject: [PATCH 1/6] [llvm-exegesis] Add support for validation counters This patch adds support for validation counters. Validation counters can be used to measure events that occur during snippet execution like cache misses to ensure that certain assumed invariants about the benchmark actually hold. Validation counters are setup within a perf event group, so are turned on and off at exactly the same time as the "group leader" counter that measures the desired value. --- .../llvm-exegesis/lib/BenchmarkResult.cpp | 52 +++ .../tools/llvm-exegesis/lib/BenchmarkResult.h | 15 +- .../llvm-exegesis/lib/BenchmarkRunner.cpp | 52 +-- .../tools/llvm-exegesis/lib/BenchmarkRunner.h | 8 ++- .../lib/LatencyBenchmarkRunner.cpp| 46 .../lib/LatencyBenchmarkRunner.h | 3 ++ llvm/tools/llvm-exegesis/lib/PerfHelper.cpp | 37 +++-- llvm/tools/llvm-exegesis/lib/PerfHelper.h | 10 +++- llvm/tools/llvm-exegesis/lib/Target.cpp | 35 + llvm/tools/llvm-exegesis/lib/Target.h | 13 ++--- .../llvm-exegesis/lib/UopsBenchmarkRunner.cpp | 37 ++--- .../llvm-exegesis/lib/UopsBenchmarkRunner.h | 9 +++- llvm/tools/llvm-exegesis/lib/X86/Target.cpp | 11 +++- .../llvm-exegesis/lib/X86/X86Counter.cpp | 2 +- llvm/tools/llvm-exegesis/llvm-exegesis.cpp| 18 ++- .../tools/llvm-exegesis/ClusteringTest.cpp| 36 ++--- .../Mips/BenchmarkResultTest.cpp | 12 ++--- .../llvm-exegesis/X86/BenchmarkResultTest.cpp | 12 ++--- 18 files changed, 311 insertions(+), 97 deletions(-) diff --git a/llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp b/llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp index 02c4da11e032d6..1079df24b457b8 100644 --- a/llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp +++ b/llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp @@ -14,6 +14,7 @@ #include "llvm/ADT/StringRef.h" #include "llvm/ADT/bit.h" #include "llvm/ObjectYAML/YAML.h" +#include "llvm/Support/Errc.h" #include "llvm/Support/FileOutputBuffer.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/Format.h" @@ -192,6 +193,56 @@ template <> struct SequenceElementTraits { static const bool flow = false; }; +const char *validationEventToString(exegesis::ValidationEvent VE) { + switch (VE) { + case exegesis::ValidationEvent::L1DCacheLoadMiss: +return "l1d-load-miss"; + case exegesis::ValidationEvent::InstructionRetired: +return "instructions-retired"; + case exegesis::ValidationEvent::DataTLBLoadMiss: +return "data-tlb-load-misses"; + case exegesis::ValidationEvent::DataTLBStoreMiss: +return "data-tlb-store-misses"; + } +} + +Expected stringToValidationEvent(StringRef Input) { + if (Input == "l1d-load-miss") +return exegesis::ValidationEvent::L1DCacheLoadMiss; + else if (Input == "instructions-retired") +return exegesis::ValidationEvent::InstructionRetired; + else if (Input == "data-tlb-load-misses") +return exegesis::ValidationEvent::DataTLBLoadMiss; + else if (Input == "data-tlb-store-misses") +return exegesis::ValidationEvent::DataTLBStoreMiss; + else +return make_error("Invalid validation event string", + errc::invalid_argument); +} + +template <> +struct CustomMappingTraits< +std::unordered_map> { + static void + inputOne(IO &Io, StringRef KeyStr, + std::unordered_map &VI) { +Expected Key = stringToValidationEvent(KeyStr); +if (!Key) { + Io.setError("Key is not a valid validation event"); + return; +} +Io.mapRequired(KeyStr.str().c_str(), VI[*Key]); + } + + static void + output(IO &Io, std::unordered_map &VI) { +for (auto &IndividualVI : VI) { + Io.mapRequired(validationEventToString(IndividualVI.first), + IndividualVI.second); +} + } +}; + // exegesis::Measure is rendererd as a flow instead of a list. // e.g. { "key": "the key", "value": 0123 } template <> struct MappingTraits { @@ -203,6 +254,7 @@ template <> struct MappingTraits { } Io.mapRequired("value", Obj.PerInstructionValue); Io.mapOptional("per_snippet_value", Obj.PerSnippetValue); +Io.mapOptional("validation_counters", Obj.ValidationCounters); } static const bool flow = true; }; diff --git a/llvm/tools/llvm-exegesis/lib/BenchmarkResult.h b/llvm/tools/llvm-exegesis/lib/BenchmarkResult.h index 0d08febae20cb3..f142da07e0a47d 100644 --- a/llvm/tools/llvm-exegesis/lib/BenchmarkResult.h +++ b/llvm/tools/llvm-exegesis/lib/BenchmarkResult.h @@ -32,6 +32,13 @@ class Error; namespace exegesis { +enum ValidationEvent { + L1DCacheLoadMiss, + InstructionRetired, + DataTLBLoadMiss, + DataTLBStoreMiss +}; + enu