[PATCH] D116054: Avoid duplicating uniqueness in ThinLTO when unique internal linkage names are used
    Teresa Johnson via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon Dec 20 14:28:43 PST 2021
    
    
  
tejohnson added inline comments.
================
Comment at: llvm/lib/Transforms/Utils/FunctionImportUtils.cpp:266
+    // uniqueifying the name.  This will directly reduce .strtab size.
+    if (Name.find(".__uniq.") == std::string::npos)
+      GV.setName(getPromotedName(&GV));
----------------
Better to do this in ModuleSummaryIndex::getGlobalNameForLocal (called by getPromotedName) so that it automatically handles all cases. E.g. without that fix cross-module WPD to a local function (requiring promotion) will be broken (we will promote on the devirt side but no longer on the def side).
E.g. see llvm/test/ThinLTO/X86/devirt_promote.ll. Although unfortunately this test case will not catch the breakage since we have hardcoded IR names in the test, i.e. it isn't being generated by -funique-internal-linkage-names.
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D116054/new/
https://reviews.llvm.org/D116054
    
    
More information about the llvm-commits
mailing list