diff options
author | Amir Ayupov <aaupov@fb.com> | 2024-05-23 19:19:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-23 19:19:07 -0700 |
commit | d1d9545ed3db2105449d7fe86e7ccaed1eedd0da (patch) | |
tree | b4b2a2126eb84997af546dbdfe5508b8f30fec45 /bolt/docs | |
parent | 29189738b832b111b905fcc037a287eeeb0aab2c (diff) | |
download | llvm-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.md | 5 |
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. |