From: Wael Yehia Date: Thu, 27 Oct 2022 18:37:26 +0000 (-0400) Subject: [PGO] Simplify InstrProfilingRuntime.cpp X-Git-Tag: upstream/17.0.6~29255 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c8eb932ce6408e09c739097b325008c10797846d;p=platform%2Fupstream%2Fllvm.git [PGO] Simplify InstrProfilingRuntime.cpp Differential Revision: https://reviews.llvm.org/D136192 --- diff --git a/compiler-rt/lib/profile/InstrProfilingRuntime.cpp b/compiler-rt/lib/profile/InstrProfilingRuntime.cpp index 04f761c..6b2ce97 100644 --- a/compiler-rt/lib/profile/InstrProfilingRuntime.cpp +++ b/compiler-rt/lib/profile/InstrProfilingRuntime.cpp @@ -12,21 +12,13 @@ extern "C" { static int RegisterRuntime() { __llvm_profile_initialize(); +#ifdef _AIX + extern COMPILER_RT_VISIBILITY void *__llvm_profile_keep[]; + (void)*(void *volatile *)__llvm_profile_keep; +#endif return 0; } -#ifndef _AIX /* int __llvm_profile_runtime */ -COMPILER_RT_VISIBILITY int INSTR_PROF_PROFILE_RUNTIME_VAR; - -static int Registration = RegisterRuntime(); -#else -extern COMPILER_RT_VISIBILITY void *__llvm_profile_keep[]; -/* On AIX, when linking with -bcdtors:csect, the variable whose constructor does - * the registration needs to be explicitly kept, hence we reuse the runtime hook - * variable to do the registration since it'll be kept via the -u linker flag. - * Create a volatile reference to __llvm_profile_keep to keep the array alive.*/ -COMPILER_RT_VISIBILITY int INSTR_PROF_PROFILE_RUNTIME_VAR = - ((void)*(void *volatile *)__llvm_profile_keep, RegisterRuntime()); -#endif +COMPILER_RT_VISIBILITY int INSTR_PROF_PROFILE_RUNTIME_VAR = RegisterRuntime(); }