aboutsummaryrefslogtreecommitdiff
path: root/bolt/docs
diff options
context:
space:
mode:
authorAmir Ayupov <aaupov@fb.com>2024-05-23 19:19:07 -0700
committerGitHub <noreply@github.com>2024-05-23 19:19:07 -0700
commitd1d9545ed3db2105449d7fe86e7ccaed1eedd0da (patch)
treeb4b2a2126eb84997af546dbdfe5508b8f30fec45 /bolt/docs
parent29189738b832b111b905fcc037a287eeeb0aab2c (diff)
downloadllvm-d1d9545ed3db2105449d7fe86e7ccaed1eedd0da.zip
llvm-d1d9545ed3db2105449d7fe86e7ccaed1eedd0da.tar.gz
llvm-d1d9545ed3db2105449d7fe86e7ccaed1eedd0da.tar.bz2
[BOLT][BAT] Add entries for deleted basic blocks
Deleted basic blocks are required for correct mapping of branches modified by SCTC. Increases BAT size, bytes: - large binary: 8622496 -> 8703244. - small binary (X86/bolt-address-translation.test): 928 -> 940. Test Plan: updated bb-with-two-tail-calls.s Reviewers: ayermolo, dcci, maksfb, rafaelauler Reviewed By: rafaelauler Pull Request: https://github.com/llvm/llvm-project/pull/91906
Diffstat (limited to 'bolt/docs')
-rw-r--r--bolt/docs/BAT.md5
1 files changed, 5 insertions, 0 deletions
diff --git a/bolt/docs/BAT.md b/bolt/docs/BAT.md
index 7ffb5d7..817ad28 100644
--- a/bolt/docs/BAT.md
+++ b/bolt/docs/BAT.md
@@ -106,9 +106,14 @@ equals output offset.
`BRANCHENTRY` bit denotes whether a given offset pair is a control flow source
(branch or call instruction). If not set, it signifies a control flow target
(basic block offset).
+
`InputAddr` is omitted for equal offsets in input and output function. In this
case, `BRANCHENTRY` bits are encoded separately in a `BranchEntries` bitvector.
+Deleted basic blocks are emitted as having `OutputOffset` equal to the size of
+the function. They don't affect address translation and only participate in
+input basic block mapping.
+
### Secondary Entry Points table
The table is emitted for hot fragments only. It contains `NumSecEntryPoints`
offsets denoting secondary entry points, delta encoded, implicitly starting at zero.