1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00

[llvm-exegesis] Check perf_branch_entry for field cycles

Summary: Follow up to breakages reported in D77422

Reviewers: ondrasej, gchatelet

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D84076
This commit is contained in:
Vy Nguyen 2020-07-17 19:08:48 -04:00
parent f9434ab9b2
commit 602a8b1df5
2 changed files with 17 additions and 0 deletions

View File

@ -7,6 +7,7 @@
include(CheckIncludeFile)
include(CheckLibraryExists)
include(CheckCXXSourceCompiles)
if (LLVM_ENABLE_LIBPFM)
check_library_exists(pfm pfm_initialize "" HAVE_LIBPFM_INITIALIZE)
@ -16,6 +17,19 @@ if (LLVM_ENABLE_LIBPFM)
check_include_file(perfmon/pfmlib_perf_event.h HAVE_PERFMON_PFMLIB_PERF_EVENT_H)
if(HAVE_PERFMON_PERF_EVENT_H AND HAVE_PERFMON_PFMLIB_H AND HAVE_PERFMON_PFMLIB_PERF_EVENT_H)
set(HAVE_LIBPFM 1)
# Check to see if perf_branch_entry has the field 'cycles'.
# We couldn't use CheckStructHasMember here because 'cycles' is a bit field which is not
# supported by CheckStructHasMember.
CHECK_CXX_SOURCE_COMPILES("
#include <perfmon/perf_event.h>
int main() {
perf_branch_entry entry;
entry.cycles = 2;
return 0;
}" COMPILE_WITH_CYCLES)
if(COMPILE_WITH_CYCLES)
set(LIBPFM_HAS_FIELD_CYCLES 1)
endif()
endif()
endif()
endif()

View File

@ -97,6 +97,9 @@
/* Define to 1 if you have the `pfm' library (-lpfm). */
#cmakedefine HAVE_LIBPFM ${HAVE_LIBPFM}
/* Define to 1 if the `perf_branch_entry' struct has field cycles. */
#cmakedefine LIBPFM_HAS_FIELD_CYCLES ${LIBPFM_HAS_FIELD_CYCLES}
/* Define to 1 if you have the `psapi' library (-lpsapi). */
#cmakedefine HAVE_LIBPSAPI ${HAVE_LIBPSAPI}