[PATCH] D82745: [ThinLto] Fix Ifunc symbol usage

Vladislav Khmelevsky via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 22 04:52:21 PDT 2020


yota9 added a comment.

Dear tejohnson !
Thank you for you comments!
I've also added the same conditions for the LTO.cpp, but I'm not sure about symbol linkage resolution in LTO.cpp, since I'm not extremely familiar with LLVM internal linkage types, hope you can help me to investigate this.
Thank you!
Vladislav
Advanced Software Technology Lab, Huawei



================
Comment at: llvm/include/llvm/IR/ModuleSummaryIndex.h:365
       : Kind(K), Flags(Flags), RefEdgeList(std::move(Refs)) {
     assert((K != AliasKind || Refs.empty()) &&
            "Expect no references for AliasSummary");
----------------
tejohnson wrote:
> Should be same for ifunc kind
Thank you!


================
Comment at: llvm/include/llvm/IR/ModuleSummaryIndex.h:530
 const inline GlobalValueSummary *GlobalValueSummary::getBaseObject() const {
   if (auto *AS = dyn_cast<AliasSummary>(this))
     return &AS->getAliasee();
----------------
tejohnson wrote:
> Should this (and the method below) return the resolver for IfuncSummary? See my comment in FunctionImport.cpp in one of the callsites for what I think will happen currently.
Seems to be you're right, thank you!


================
Comment at: llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:359
+        // We want to record the call edge to the alias in that case.
+        // Eventuallyan alias summary will be created to associate the alias
+        // and aliasee or ifunc and its resolver.
----------------
tejohnson wrote:
> Missing space between first 2 words.
Thank you!


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

https://reviews.llvm.org/D82745





More information about the llvm-commits mailing list