[PATCH] D110422: [AIX] Enable PGO without LTO

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 27 13:57:12 PDT 2021


MaskRay added a comment.

> However, on AIX, the current binder can NOT discard the weak symbols if we put all of them into the same csect, as binder can NOT discard only part of a csect.

"as binder can NOT discard only part of a csect." this part caused confusion to me...

> CountersOffset is now 0x1ffffffffffffda3 ( CounterPtr - CountersDelta / sizeof(unit64_6))
>
> CountersOffset > MaxNumCounters !

It is true that there are two pairs of weak profc/profd, but the first profc has a zero value, so I assume that it is fine?

The second pair of profc/profd has correct value.

I haven't verified but it is possible that PGO picks the first pair (zero value) and have an incorrect counter for `foo`.

---

Does your example imply that the weak symbol `__profc_foo` has 2 definitions with conflicting values? 
I presume it can cause more fallout.
Any idea whether the linker bug will be fixed?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D110422



More information about the llvm-commits mailing list