@@ -201,14 +201,12 @@ PreservedAnalyses JumpTableToSwitchPass::run(Function &F,
201201  PostDominatorTree *PDT = AM.getCachedResult <PostDominatorTreeAnalysis>(F);
202202  DomTreeUpdater DTU (DT, PDT, DomTreeUpdater::UpdateStrategy::Lazy);
203203  bool  Changed = false ;
204-   InstrProfSymtab Symtab;
205-   if  (auto  E = Symtab.create (*F.getParent ()))
206-     F.getContext ().emitError (
207-         " Could not create indirect call table, likely corrupted IR" 
208-         toString (std::move (E)));
209-   DenseMap<const  Function *, GlobalValue::GUID> FToGuid;
210-   for  (const  auto  &[G, FPtr] : Symtab.getIDToNameMap ())
211-     FToGuid.insert ({FPtr, G});
204+   auto  FuncToGuid = [&](const  Function &Fct) {
205+     if  (Fct.getMetadata (AssignGUIDPass::GUIDMetadataName))
206+       return  AssignGUIDPass::getGUID (Fct);
207+ 
208+     return  Function::getGUIDAssumingExternalLinkage (getIRPGOFuncName (F, InLTO));
209+   };
212210
213211  for  (BasicBlock &BB : make_early_inc_range (F)) {
214212    BasicBlock *CurrentBB = &BB;
@@ -230,12 +228,8 @@ PreservedAnalyses JumpTableToSwitchPass::run(Function &F,
230228        std::optional<JumpTableTy> JumpTable = parseJumpTable (GEP, PtrTy);
231229        if  (!JumpTable)
232230          continue ;
233-         SplittedOutTail = expandToSwitch (
234-             Call, *JumpTable, DTU, ORE, [&](const  Function &Fct) {
235-               if  (Fct.getMetadata (AssignGUIDPass::GUIDMetadataName))
236-                 return  AssignGUIDPass::getGUID (Fct);
237-               return  FToGuid.lookup_or (&Fct, 0U );
238-             });
231+         SplittedOutTail =
232+             expandToSwitch (Call, *JumpTable, DTU, ORE, FuncToGuid);
239233        Changed = true ;
240234        break ;
241235      }
0 commit comments