aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorÁdám Kallai <kadam@inf.u-szeged.hu>2025-11-06 10:54:44 +0100
committerGitHub <noreply@github.com>2025-11-06 09:54:44 +0000
commita24eac88eb533b70e8c6a23824668f54edec2972 (patch)
treefb439e1e6e73f5af8b314b872f86b3edda728e6f /flang/lib/Frontend/CompilerInvocation.cpp
parentcad96ad703d9ba16c354aa782ded8a7058cd47e4 (diff)
downloadllvm-a24eac88eb533b70e8c6a23824668f54edec2972.zip
llvm-a24eac88eb533b70e8c6a23824668f54edec2972.tar.gz
llvm-a24eac88eb533b70e8c6a23824668f54edec2972.tar.bz2
[BOLT] Adding a unittest that covers Arm SPE PBT aggregation (#160095)
When the SPE Previous Branch Target address (FEAT_SPE_PBT) feature is available, an SPE sample by combining this PBT feature, has two entries. Arm SPE records SRC/DEST addresses of the latest sampled branch operation, and it stores into the first entry. PBT records the target address of most recently taken branch in program order before the sampled operation, it places into the second entry. They are formed a chain of two consecutive branches. Where: - The previous branch operation (PBT) is always taken. - In SPE entry, the current source branch (SRC) may be either fall-through or taken, and the target address (DEST) of the recorded branch operation is always what was architecturally executed. However PBT doesn't provide as much information as SPE does. It lacks those information such as the address of source branch, branch type, and prediction bit. These information are always filled with zero in PBT entry. Therefore Bolt cannot evaluate the prediction, and source branch fields, it leaves them zero during the aggregation process. Tests includes a fully expanded example.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions