forked from OSchip/llvm-project
[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
This commit is contained in:
parent
6376db52fe
commit
7c7f120178
|
@ -12,36 +12,47 @@
|
||||||
#if defined(__linux__) || defined(__FreeBSD__)
|
#if defined(__linux__) || defined(__FreeBSD__)
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
extern __llvm_profile_data __start___llvm_prf_data LLVM_LIBRARY_VISIBILITY;
|
#define PROF_DATA_START INSTR_PROF_SECT_START(INSTR_PROF_DATA_SECT_NAME)
|
||||||
extern __llvm_profile_data __stop___llvm_prf_data LLVM_LIBRARY_VISIBILITY;
|
#define PROF_DATA_STOP INSTR_PROF_SECT_STOP(INSTR_PROF_DATA_SECT_NAME)
|
||||||
extern uint64_t __start___llvm_prf_cnts LLVM_LIBRARY_VISIBILITY;
|
#define PROF_NAME_START INSTR_PROF_SECT_START(INSTR_PROF_NAME_SECT_NAME)
|
||||||
extern uint64_t __stop___llvm_prf_cnts LLVM_LIBRARY_VISIBILITY;
|
#define PROF_NAME_STOP INSTR_PROF_SECT_STOP(INSTR_PROF_NAME_SECT_NAME)
|
||||||
extern char __start___llvm_prf_names LLVM_LIBRARY_VISIBILITY;
|
#define PROF_CNTS_START INSTR_PROF_SECT_START(INSTR_PROF_CNTS_SECT_NAME)
|
||||||
extern char __stop___llvm_prf_names LLVM_LIBRARY_VISIBILITY;
|
#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. */
|
/* Add dummy data to ensure the section is always created. */
|
||||||
__llvm_profile_data __llvm_prof_sect_data[0] LLVM_SECTION("__llvm_prf_data");
|
__llvm_profile_data
|
||||||
uint64_t __llvm_prof_cnts_sect_data[0] LLVM_SECTION("__llvm_prf_cnts");
|
__prof_data_sect_data[0] LLVM_SECTION(INSTR_PROF_DATA_SECT_NAME_STR);
|
||||||
char __llvm_prof_nms_sect_data[0] LLVM_SECTION("__llvm_prf_names");
|
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_LIBRARY_VISIBILITY const __llvm_profile_data *
|
||||||
__llvm_profile_begin_data(void) {
|
__llvm_profile_begin_data(void) {
|
||||||
return &__start___llvm_prf_data;
|
return &PROF_DATA_START;
|
||||||
}
|
}
|
||||||
LLVM_LIBRARY_VISIBILITY const __llvm_profile_data *
|
LLVM_LIBRARY_VISIBILITY const __llvm_profile_data *
|
||||||
__llvm_profile_end_data(void) {
|
__llvm_profile_end_data(void) {
|
||||||
return &__stop___llvm_prf_data;
|
return &PROF_DATA_STOP;
|
||||||
}
|
}
|
||||||
LLVM_LIBRARY_VISIBILITY const char *__llvm_profile_begin_names(void) {
|
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) {
|
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) {
|
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) {
|
LLVM_LIBRARY_VISIBILITY uint64_t *__llvm_profile_end_counters(void) {
|
||||||
return &__stop___llvm_prf_cnts;
|
return &PROF_CNTS_STOP;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue