Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1 |
|
#
faf675ce |
| 29-Jan-2024 |
Aiden Grossman <agrossman154@yahoo.com> |
[llvm-exegesis] Remove llvm prefix where unnecessary (#79802)
This patch removes the llvm:: prefix within llvm-exegesis where it is
not necessary. This is most occurrences of the prefix within exeg
[llvm-exegesis] Remove llvm prefix where unnecessary (#79802)
This patch removes the llvm:: prefix within llvm-exegesis where it is
not necessary. This is most occurrences of the prefix within exegesis as
exegesis is within the llvm namespace. This patch makes things more
consistent as the vast majority of the code did not use the llvm::
prefix for anything.
show more ...
|
Revision tags: llvmorg-19-init |
|
#
f670112a |
| 19-Jan-2024 |
Aiden Grossman <agrossman154@yahoo.com> |
[llvm-exegesis] Add support for validation counters (#76653)
This patch adds support for validation counters. Validation counters can
be used to measure events that occur during snippet execution l
[llvm-exegesis] Add support for validation counters (#76653)
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.
show more ...
|
#
a974303e |
| 16-Jan-2024 |
Aiden Grossman <agrossman154@yahoo.com> |
[llvm-exegesis] Refactor individual counter data to ConfiguredEvent (#77900)
This further sets things up for validation events. Having a separate
abstraction for a configured event that is setup as
[llvm-exegesis] Refactor individual counter data to ConfiguredEvent (#77900)
This further sets things up for validation events. Having a separate
abstraction for a configured event that is setup as a counter allows for
much easier creation of more events in the future within a single
counter group (like validation counters) without duplicating any code.
show more ...
|
#
e366e04d |
| 16-Jan-2024 |
Aiden Grossman <agrossman154@yahoo.com> |
[llvm-exegesis] Refactor Counter to CounterGroup (#77887)
This refactoring gets things ready for validation counters where the
plan is to reuse the existing Counter infrastructure to contain event
[llvm-exegesis] Refactor Counter to CounterGroup (#77887)
This refactoring gets things ready for validation counters where the
plan is to reuse the existing Counter infrastructure to contain event
groups that consist of a single event that is being measured along with
validation counters.
show more ...
|
#
6f4cc131 |
| 05-Jan-2024 |
Aiden Grossman <agrossman154@yahoo.com> |
[llvm-exegesis] Remove unused Counter::read method (#76651)
This method was simply a wrapper around readOrError. All users within
the llvm-exegesis code base should have been processing an actual e
[llvm-exegesis] Remove unused Counter::read method (#76651)
This method was simply a wrapper around readOrError. All users within
the llvm-exegesis code base should have been processing an actual error
rather than using the wrapper. This patch removes the wrapper and
rewrites the users (just 1) to use the readOrError method.
show more ...
|
Revision tags: llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
#
48f0c802 |
| 25-Jun-2023 |
Aiden Grossman <agrossman154@yahoo.com> |
[llvm-exegesis] Add ability to assign perf counters to specific PID
This patch gives the ability to assign performance counters within llvm-exegesis to a specific process by passing its PID. This is
[llvm-exegesis] Add ability to assign perf counters to specific PID
This patch gives the ability to assign performance counters within llvm-exegesis to a specific process by passing its PID. This is needed later on for implementing a subprocess executor. Defaults to zero, the current process, for the InProcessFunctionExecutorImpl.
Reviewed By: courbet
Differential Revision: https://reviews.llvm.org/D151020
show more ...
|
#
30995051 |
| 22-Jun-2023 |
Aiden Grossman <agrossman154@yahoo.com> |
Revert "[llvm-exegesis] Add ability to assign perf counters to specific PID"
Revert "[llvm-exegesis] Introduce Subprocess Executor Mode"
This reverts commit 5e9173c43a9b97c8614e36d6f754317f731e71e9
Revert "[llvm-exegesis] Add ability to assign perf counters to specific PID"
Revert "[llvm-exegesis] Introduce Subprocess Executor Mode"
This reverts commit 5e9173c43a9b97c8614e36d6f754317f731e71e9. This reverts commit 4d618b52f6e05e41d35f56653cb36bf7d4dc794e.
Reverting the PID commit as it is currently breaking MinGW builds and the way I'm checking for the presence of pid_t needs to be fixed and I need to do some testing. The subprocess executor mode patch is a dependent patch so also needs to be reverted and also needs some work as it is currently failing tests where libpfm is installed and the kernel version is less than 5.6.
show more ...
|
Revision tags: llvmorg-16.0.6, llvmorg-16.0.5 |
|
#
5e9173c4 |
| 20-May-2023 |
Aiden Grossman <agrossman154@yahoo.com> |
[llvm-exegesis] Add ability to assign perf counters to specific PID
This patch gives the ability to assign performance counters within llvm-exegesis to a specific process by passing its PID. This is
[llvm-exegesis] Add ability to assign perf counters to specific PID
This patch gives the ability to assign performance counters within llvm-exegesis to a specific process by passing its PID. This is needed later on for implementing a subprocess executor. Defaults to zero, the current process, for the InProcessFunctionExecutorImpl.
Reviewed By: courbet
Differential Revision: https://reviews.llvm.org/D151020
show more ...
|
Revision tags: llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2 |
|
#
b02e2ed7 |
| 06-Apr-2023 |
Pavel Kosov <kpdev42@gmail.com> |
[llvm-exegesis] Make possible to execute snippets without perf counters
Performance counters may be unavailable due to various reasons (such as access restriction via sysctl properties or the CPU mo
[llvm-exegesis] Make possible to execute snippets without perf counters
Performance counters may be unavailable due to various reasons (such as access restriction via sysctl properties or the CPU model being unknown to libpfm). On the other hand, for debugging llvm-exegesis itself it is still useful to be able to run generated code snippets to ensure that the snippet does not crash at run time.
The --use-dummy-perf-counters command line option makes llvm-exegesis behave just as usual except for using fake event counts instead of asking the kernel for actual values.
~~
Huawei RRI, OS Lab
Reviewed By: courbet
Differential Revision: https://reviews.llvm.org/D146301
show more ...
|
Revision tags: llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init |
|
#
a35480f8 |
| 13-Jul-2021 |
Vy Nguyen <vyng@google.com> |
[llvm-exegesis] Fix missing-headers build errors.
Details:
Switch all #includes to use <> because that is consistent with what happens in the cmake checks. Otherwise, we could be in the situation w
[llvm-exegesis] Fix missing-headers build errors.
Details:
Switch all #includes to use <> because that is consistent with what happens in the cmake checks. Otherwise, we could be in the situation where cmake checks see that headers exist at <perfmon/...> but in llvm-exegesis code, we use "perfmon/...", which may not exist.
Related PR/revisions: D84076, PR51017+D105615
Differential Revision: https://reviews.llvm.org/D105861
show more ...
|
Revision tags: llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1 |
|
#
ee7caa75 |
| 27-Jul-2020 |
Vy Nguyen <vyng@google.com> |
Reland [llvm-exegesis] Add benchmark latency option on X86 that uses LBR for more precise measurements.
Starting with Skylake, the LBR contains the precise number of cycles between the two
Reland [llvm-exegesis] Add benchmark latency option on X86 that uses LBR for more precise measurements.
Starting with Skylake, the LBR contains the precise number of cycles between the two consecutive branches. Making use of this will hopefully make the measurements more precise than the existing methods of using RDTSC.
Differential Revision: https://reviews.llvm.org/D77422
New change: check for existence of field `cycles` in perf_branch_entry before enabling this mode. This should prevent compilation errors when building for older kernel whose headers don't support it.
show more ...
|
#
6bddd099 |
| 17-Jul-2020 |
Clement Courbet <courbet@google.com> |
Revert "[llvm-exegesis] Add benchmark latency option on X86 that uses LBR for more precise measurements."
From @erichkeane: ``` This patch doesn't seem to build for me: /iusers/ekeane1/workspaces/ll
Revert "[llvm-exegesis] Add benchmark latency option on X86 that uses LBR for more precise measurements."
From @erichkeane: ``` This patch doesn't seem to build for me: /iusers/ekeane1/workspaces/llvm-project/llvm/tools/llvm-exegesis/lib/X86/X86Counter.cpp: In function ‘llvm::Error llvm::exegesis::parseDataBuffer(const char*, size_t, const void*, const void*, llvm::SmallVector<long int, 4>*)’: /iusers/ekeane1/workspaces/llvm-project/llvm/tools/llvm-exegesis/lib/X86/X86Counter.cpp:99:37: error: ‘struct perf_branch_entry’ has no member named ‘cycles’
CycleArray->push_back(Entry.cycles); I'm on RHEL7, so I have kernel 3.10, so it doesn't have 'cycles'.
According ot this: https://elixir.bootlin.com/linux/v4.3/source/include/uapi/linux/perf_event.h#L963 kernel 4.3 is the first time that 'cycles' appeared in this structure. ```
show more ...
|
Revision tags: llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
#
1360e140 |
| 18-Jun-2020 |
Vy Nguyen <vyng@google.com> |
[llvm-exegesis] Add benchmark latency option on X86 that uses LBR for more precise measurements.
Starting with Skylake, the LBR contains the precise number of cycles between the two consecut
[llvm-exegesis] Add benchmark latency option on X86 that uses LBR for more precise measurements.
Starting with Skylake, the LBR contains the precise number of cycles between the two consecutive branches. Making use of this will hopefully make the measurements more precise than the existing methods of using RDTSC.
Differential Revision: https://reviews.llvm.org/D77422
show more ...
|
#
e086a39c |
| 25-Jun-2020 |
Vy Nguyen <vyng@google.com> |
[llvm-exegesis] Let Counter returns up to 16 entries
LBR contains (up to) 16 entries for last x branches and the X86LBRCounter (from D77422) should be able to return all those. Currently, it
[llvm-exegesis] Let Counter returns up to 16 entries
LBR contains (up to) 16 entries for last x branches and the X86LBRCounter (from D77422) should be able to return all those. Currently, it just returns the latest entry, which could lead to mis-leading measurements. This patch aslo changes the LatencyBenchmarkRunner to accommodate multi-value readings.
https://reviews.llvm.org/D81050
show more ...
|
#
cc8fafa2 |
| 27-May-2020 |
Vy Nguyen <vyng@google.com> |
[llvm-exegesis] Make a few counter methods virtual to allow targets to provide target-specific support. Misc: Also include errno in failure message.
Differential Revision: https://reviews.llvm.org/D
[llvm-exegesis] Make a few counter methods virtual to allow targets to provide target-specific support. Misc: Also include errno in failure message.
Differential Revision: https://reviews.llvm.org/D80610
show more ...
|
Revision tags: llvmorg-10.0.1-rc1 |
|
#
7c6514bc |
| 08-Apr-2020 |
Clement Courbet <courbet@google.com> |
[llvm-exegesis] Fix build with !HAS_LIBPFM.
Fixes 9fb871866e2b.
|
#
9fb87186 |
| 08-Apr-2020 |
Clement Courbet <courbet@google.com> |
[llvm-exegesis][NFC] Let the pfm::Counter own the PerfHelper.
A perf helper is always only ever cretaed to be checked for validity then passed as Counter ctor argument, never to be touched again. It
[llvm-exegesis][NFC] Let the pfm::Counter own the PerfHelper.
A perf helper is always only ever cretaed to be checked for validity then passed as Counter ctor argument, never to be touched again. Its lifetime should outlive that of the counter, and there is never any reason to have two different counters of top of the perf helper. Make sure these assumptions always hold by making the Counter consume the PerfHelper.
show more ...
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1 |
|
#
50cdd56b |
| 09-Oct-2019 |
Clement Courbet <courbet@google.com> |
[llvm-exegesis][NFC] Remove extra `llvm::` qualifications.
Summary: Second patch: in the lib.
Reviewers: gchatelet
Subscribers: nemanjai, tschuett, MaskRay, mgrang, jsji, llvm-commits
Tags: #llvm
[llvm-exegesis][NFC] Remove extra `llvm::` qualifications.
Summary: Second patch: in the lib.
Reviewers: gchatelet
Subscribers: nemanjai, tschuett, MaskRay, mgrang, jsji, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68692
llvm-svn: 374158
show more ...
|
Revision tags: llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1, llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2, llvmorg-8.0.0-rc1 |
|
#
2946cd70 |
| 19-Jan-2019 |
Chandler Carruth <chandlerc@gmail.com> |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository.
llvm-svn: 351636
show more ...
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3, llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1 |
|
#
32401afd |
| 22-Oct-2018 |
Fangrui Song <maskray@google.com> |
[llvm-exegesis] Move namespace exegesis inside llvm::
Summary: This allows simplifying references of llvm::foo with foo when the needs come in the future.
Reviewers: courbet, gchatelet
Reviewed By
[llvm-exegesis] Move namespace exegesis inside llvm::
Summary: This allows simplifying references of llvm::foo with foo when the needs come in the future.
Reviewers: courbet, gchatelet
Reviewed By: gchatelet
Subscribers: javed.absar, tschuett, llvm-commits
Differential Revision: https://reviews.llvm.org/D53455
llvm-svn: 344922
show more ...
|
Revision tags: llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1, llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2 |
|
#
71d4afb9 |
| 31-May-2018 |
Roman Lebedev <lebedev.ri@gmail.com> |
[llvm-exegesis][NFCI] Counter::Counter(): more useful msg on event open error
Summary: I'm slowly looking into a new X86 scheduler model, for AMD Bulldozer CPU, model 2 (bdver2, Piledriver).
And na
[llvm-exegesis][NFCI] Counter::Counter(): more useful msg on event open error
Summary: I'm slowly looking into a new X86 scheduler model, for AMD Bulldozer CPU, model 2 (bdver2, Piledriver).
And naturally, i have hit that assert :) I happened to know what it meant, and how to fix it, but that is not too common knowledge.
Reviewers: courbet, RKSimon
Reviewed By: courbet
Subscribers: tschuett, llvm-commits, craig.topper
Differential Revision: https://reviews.llvm.org/D47572
llvm-svn: 333632
show more ...
|
#
27d4ca2d |
| 15-May-2018 |
Clement Courbet <courbet@google.com> |
[llvm-exegesis] Check perf event validity.
This was part of https://reviews.llvm.org/D46821.
Authored by Guillaume Chatelet
llvm-svn: 332330
|
#
dcfa908b |
| 18-Apr-2018 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[llvm-exegesis] Put a newline at the end of each error report.
Makes multiple error messages much easier to read.
llvm-svn: 330258
|
Revision tags: llvmorg-6.0.1-rc1 |
|
#
bc89a781 |
| 07-Apr-2018 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[llvm-exegesis] Fix unused return value warning and add a useful error message for event counter reads.
llvm-svn: 329496
|
#
804997ab |
| 04-Apr-2018 |
Clement Courbet <courbet@google.com> |
[llvm-exegesis] Do not initialize FileDescriptor when libpfm is not available.
llvm-svn: 329177
|