Skip to content

Commit 618d86a

Browse files
committed
[Docs][llvm-exegesis] Clarify AArch64 support
Claiming AArch64 support for llvm-exegesis is a bit of a stretch, so clarify that that its support is very experimental. Also added some clarifications about its libpfm4 dependency.
1 parent c5eb591 commit 618d86a

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

llvm/docs/CommandGuide/llvm-exegesis.rst

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,13 @@ snippets.
3333
SUPPORTED PLATFORMS
3434
-------------------
3535

36-
:program:`llvm-exegesis` currently only supports X86 (64-bit only), ARM (AArch64
37-
only), MIPS, and PowerPC (PowerPC64LE only) on Linux for benchmarking. Not all
38-
benchmarking functionality is guaranteed to work on every platform.
39-
:program:`llvm-exegesis` also has a separate analysis mode that is supported
40-
on every platform that LLVM is.
36+
:program:`llvm-exegesis` currently only supports X86 (64-bit only), ARM
37+
(AArch64 only and very experimental), MIPS, and PowerPC (PowerPC64LE only) on
38+
Linux for benchmarking. Not all benchmarking functionality is guaranteed to
39+
work on every platform. :program:`llvm-exegesis` also has a separate analysis
40+
mode that is supported on every platform that LLVM is. See README.md for
41+
more information on the libpfm4 dependency and how to configure and build
42+
:program:`llvm-exegesis` from source.
4143

4244
SNIPPET ANNOTATIONS
4345
-------------------

llvm/tools/llvm-exegesis/README.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,16 @@ Analysis mode in `llvm-exegesis` is supported on all platforms on which LLVM is.
1313
#### Currently Supported Operating Systems for Benchmarking
1414

1515
Currently, `llvm-exegesis` only supports benchmarking on Linux. This is mainly
16-
due to a dependency on the Linux perf subsystem for reading performance
17-
counters.
16+
due to a dependency on the Linux perf subsystem and libpfm4 for reading
17+
performance counters. For benchmarking, LLVM needs to be configured and build
18+
with `LLVM_ENABLE_LIBPFM` enabled. Benchmarking might fail if the target cpu is
19+
not supported by libpfm. This can be checked by putting libpfm in verbose/debug
20+
mode with environment variables `LIBPFM_VERBOSE` and `LIBFM_DEBUG`. If libpfm
21+
is installed in a non-standard location, LLVM can be configured to look for the
22+
libpfm library and header file locations by setting environment variables
23+
`LIBRARY_PATH`, `C_INCLUDE_PATH`, and `CPLUS_INCLUDE_PATH`. In that case variable
24+
`LD_LIBRARY_PATH` needs to be set too so that `llvm-exegesis` can find the
25+
library at execution time.
1826

1927
The subprocess execution mode and memory annotations currently only supports
2028
Linux due to a heavy reliance on many Linux specific syscalls/syscall
@@ -28,7 +36,7 @@ architectures:
2836
* 64-bit only due to this being the only implemented calling convention
2937
in `llvm-exegesis` currently.
3038
* ARM
31-
* AArch64 only
39+
* Very experimental AArch64 support only, most opcodes probably won't work.
3240
* MIPS
3341
* PowerPC (PowerPC64LE only)
3442

0 commit comments

Comments
 (0)