summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c
diff options
context:
space:
mode:
authorXinliang David Li <davidxl@google.com>2015-11-23 18:56:03 +0000
committerXinliang David Li <davidxl@google.com>2015-11-23 18:56:03 +0000
commit7c7f12017844fb21a59e3a603edd42e315187bd1 (patch)
treeeecec3dba1e517406b499165cdea634a884b1d13 /compiler-rt/lib/profile/InstrProfilingPlatformLinux.c
parent6376db52fe0c291f2aa1549f6c3473a6f822e9d4 (diff)
downloadbcm5719-llvm-7c7f12017844fb21a59e3a603edd42e315187bd1.tar.gz
bcm5719-llvm-7c7f12017844fb21a59e3a603edd42e315187bd1.zip
[PGO] Unify section name, section symbol definitions (Linux)
Replace hard-coded references to names to key section and section symbols with common macro definitions. llvm-svn: 253897
Diffstat (limited to 'compiler-rt/lib/profile/InstrProfilingPlatformLinux.c')
-rw-r--r--compiler-rt/lib/profile/InstrProfilingPlatformLinux.c41
1 files changed, 26 insertions, 15 deletions
diff --git a/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c b/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c
index ea0bd1328a7..06514c2e863 100644
--- a/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c
+++ b/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c
@@ -12,36 +12,47 @@
#if defined(__linux__) || defined(__FreeBSD__)
#include <stdlib.h>
-extern __llvm_profile_data __start___llvm_prf_data LLVM_LIBRARY_VISIBILITY;
-extern __llvm_profile_data __stop___llvm_prf_data LLVM_LIBRARY_VISIBILITY;
-extern uint64_t __start___llvm_prf_cnts LLVM_LIBRARY_VISIBILITY;
-extern uint64_t __stop___llvm_prf_cnts LLVM_LIBRARY_VISIBILITY;
-extern char __start___llvm_prf_names LLVM_LIBRARY_VISIBILITY;
-extern char __stop___llvm_prf_names LLVM_LIBRARY_VISIBILITY;
+#define PROF_DATA_START INSTR_PROF_SECT_START(INSTR_PROF_DATA_SECT_NAME)
+#define PROF_DATA_STOP INSTR_PROF_SECT_STOP(INSTR_PROF_DATA_SECT_NAME)
+#define PROF_NAME_START INSTR_PROF_SECT_START(INSTR_PROF_NAME_SECT_NAME)
+#define PROF_NAME_STOP INSTR_PROF_SECT_STOP(INSTR_PROF_NAME_SECT_NAME)
+#define PROF_CNTS_START INSTR_PROF_SECT_START(INSTR_PROF_CNTS_SECT_NAME)
+#define PROF_CNTS_STOP INSTR_PROF_SECT_STOP(INSTR_PROF_CNTS_SECT_NAME)
+
+/* Declare section start and stop symbols for various sections
+ * generated by compiler instrumentation.
+ */
+extern __llvm_profile_data PROF_DATA_START LLVM_LIBRARY_VISIBILITY;
+extern __llvm_profile_data PROF_DATA_STOP LLVM_LIBRARY_VISIBILITY;
+extern uint64_t PROF_CNTS_START LLVM_LIBRARY_VISIBILITY;
+extern uint64_t PROF_CNTS_STOP LLVM_LIBRARY_VISIBILITY;
+extern char PROF_NAME_START LLVM_LIBRARY_VISIBILITY;
+extern char PROF_NAME_STOP LLVM_LIBRARY_VISIBILITY;
/* Add dummy data to ensure the section is always created. */
-__llvm_profile_data __llvm_prof_sect_data[0] LLVM_SECTION("__llvm_prf_data");
-uint64_t __llvm_prof_cnts_sect_data[0] LLVM_SECTION("__llvm_prf_cnts");
-char __llvm_prof_nms_sect_data[0] LLVM_SECTION("__llvm_prf_names");
+__llvm_profile_data
+ __prof_data_sect_data[0] LLVM_SECTION(INSTR_PROF_DATA_SECT_NAME_STR);
+uint64_t __prof_cnts_sect_data[0] LLVM_SECTION(INSTR_PROF_CNTS_SECT_NAME_STR);
+char __prof_nms_sect_data[0] LLVM_SECTION(INSTR_PROF_NAME_SECT_NAME_STR);
LLVM_LIBRARY_VISIBILITY const __llvm_profile_data *
__llvm_profile_begin_data(void) {
- return &__start___llvm_prf_data;
+ return &PROF_DATA_START;
}
LLVM_LIBRARY_VISIBILITY const __llvm_profile_data *
__llvm_profile_end_data(void) {
- return &__stop___llvm_prf_data;
+ return &PROF_DATA_STOP;
}
LLVM_LIBRARY_VISIBILITY const char *__llvm_profile_begin_names(void) {
- return &__start___llvm_prf_names;
+ return &PROF_NAME_START;
}
LLVM_LIBRARY_VISIBILITY const char *__llvm_profile_end_names(void) {
- return &__stop___llvm_prf_names;
+ return &PROF_NAME_STOP;
}
LLVM_LIBRARY_VISIBILITY uint64_t *__llvm_profile_begin_counters(void) {
- return &__start___llvm_prf_cnts;
+ return &PROF_CNTS_START;
}
LLVM_LIBRARY_VISIBILITY uint64_t *__llvm_profile_end_counters(void) {
- return &__stop___llvm_prf_cnts;
+ return &PROF_CNTS_STOP;
}
#endif
OpenPOWER on IntegriCloud