@@ -1330,7 +1330,8 @@ static void addPreloadKernArgHint(Function &F, TargetMachine &TM) {
13301330}
13311331
13321332static  bool  runImpl (Module &M, AnalysisGetter &AG, TargetMachine &TM,
1333-                     AMDGPUAttributorOptions Options) {
1333+                     AMDGPUAttributorOptions Options,
1334+                     ThinOrFullLTOPhase LTOPhase) {
13341335  SetVector<Function *> Functions;
13351336  for  (Function &F : M) {
13361337    if  (!F.isIntrinsic ())
@@ -1365,9 +1366,30 @@ static bool runImpl(Module &M, AnalysisGetter &AG, TargetMachine &TM,
13651366
13661367  Attributor A (Functions, InfoCache, AC);
13671368
1368-   LLVM_DEBUG (dbgs () << " [AMDGPUAttributor] Module "   << M.getName () << "  is " 
1369-                     << (AC.IsClosedWorldModule  ? " "   : " not "  )
1370-                     << " assumed to be a closed world.\n "  );
1369+   LLVM_DEBUG ({
1370+     StringRef LTOPhaseStr;
1371+     switch  (LTOPhase) {
1372+     case  ThinOrFullLTOPhase::None:
1373+       LTOPhaseStr = " None"  ;
1374+       break ;
1375+     case  ThinOrFullLTOPhase::ThinLTOPreLink:
1376+       LTOPhaseStr = " ThinLTOPreLink"  ;
1377+       break ;
1378+     case  ThinOrFullLTOPhase::ThinLTOPostLink:
1379+       LTOPhaseStr = " ThinLTOPostLink"  ;
1380+       break ;
1381+     case  ThinOrFullLTOPhase::FullLTOPreLink:
1382+       LTOPhaseStr = " FullLTOPreLink"  ;
1383+       break ;
1384+     case  ThinOrFullLTOPhase::FullLTOPostLink:
1385+       LTOPhaseStr = " FullLTOPostLink"  ;
1386+       break ;
1387+     }
1388+     dbgs () << " [AMDGPUAttributor] Running at phase "   << LTOPhaseStr << ' \n '  ;
1389+     dbgs () << " [AMDGPUAttributor] Module "   << M.getName () << "  is " 
1390+            << (AC.IsClosedWorldModule  ? " "   : " not "  )
1391+            << " assumed to be a closed world.\n "  ;
1392+   });
13711393
13721394  for  (auto  *F : Functions) {
13731395    A.getOrCreateAAFor <AAAMDAttributes>(IRPosition::function (*F));
@@ -1420,7 +1442,8 @@ class AMDGPUAttributorLegacy : public ModulePass {
14201442
14211443  bool  runOnModule (Module &M) override  {
14221444    AnalysisGetter AG (this );
1423-     return  runImpl (M, AG, *TM, /* Options=*/  {});
1445+     return  runImpl (M, AG, *TM, /* Options=*/  {},
1446+                    /* LTOPhase=*/  ThinOrFullLTOPhase::None);
14241447  }
14251448
14261449  void  getAnalysisUsage (AnalysisUsage &AU) const  override  {
@@ -1441,8 +1464,8 @@ PreservedAnalyses llvm::AMDGPUAttributorPass::run(Module &M,
14411464  AnalysisGetter AG (FAM);
14421465
14431466  //  TODO: Probably preserves CFG
1444-   return  runImpl (M, AG, TM, Options) ? PreservedAnalyses::none ()
1445-                                      : PreservedAnalyses::all ();
1467+   return  runImpl (M, AG, TM, Options, LTOPhase ) ? PreservedAnalyses::none ()
1468+                                                 : PreservedAnalyses::all ();
14461469}
14471470
14481471char  AMDGPUAttributorLegacy::ID = 0 ;
0 commit comments