w2yehia added a comment.

> I wasn't included as a reviewer on D124857 <https://reviews.llvm.org/D124857> 
> and I missed that change so couldn't comment there, but I'm not a fan of 
> including the AIX support in InstrProfilingPlatformLinux.c. AIX is neither 
> Linux nor ELF-based and big chunks of that file are now #ifdefed out making 
> it harder to comprehend which part is used where. I'd prefer introducing 
> InstrProfilingPlatformAIX.c, moving the AIX-specific logic there, and then 
> figuring out how to possibly share common parts between 
> InstrProfilingPlatformLinux.c and InstrProfilingPlatformAIX.c, for example by 
> moving them to an .inc file.

Splitting was considered but because AIX reuses the entirety of that file 
(except two `#include`'s) and adds some AIX-only stuff it seemed better not to 
duplicate the common code. Doing a .inc file was not considered. The `.inc` 
file will have to contain the entire `InstrProfilingPlatformLinux.c` content. 
Let me know if you want me to post a patch for the `.inc`. Thanks



================
Comment at: compiler-rt/lib/profile/InstrProfilingPlatformLinux.c:265-267
+COMPILER_RT_VISIBILITY
+void *__llvm_profile_keep[] = {(void *)&dummy_cnts, (void *)&dummy_data,
+                               (void *)&dummy_name, (void *)&dummy_vnds};
----------------
phosek wrote:
> Does AIX linker support the `retain` attribute? That would be a cleaner 
> solution.
thanks for pointing out. Unfortunately the `retain` attribute is not supported 
by the AIX linker. It could be implemented on the compiler side, but as of now 
it's not supported by the build compiler on AIX. 


================
Comment at: compiler-rt/lib/profile/InstrProfilingRuntime.cpp:20-22
 COMPILER_RT_VISIBILITY int INSTR_PROF_PROFILE_RUNTIME_VAR;
-}
 
+static int Registration = RegisterRuntime();
----------------
phosek wrote:
> Is it possible to reuse the runtime hook variable on other platforms as well? 
> I'd really like to avoid introducing another variable.
I also wanted to do that but didn't in fear of breaking others. I can do the 
change and see what breaks?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136192/new/

https://reviews.llvm.org/D136192

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to