@@ -1330,7 +1330,8 @@ static void addPreloadKernArgHint(Function &F, TargetMachine &TM) {
1330
1330
}
1331
1331
1332
1332
static bool runImpl (Module &M, AnalysisGetter &AG, TargetMachine &TM,
1333
- AMDGPUAttributorOptions Options) {
1333
+ AMDGPUAttributorOptions Options,
1334
+ ThinOrFullLTOPhase LTOPhase) {
1334
1335
SetVector<Function *> Functions;
1335
1336
for (Function &F : M) {
1336
1337
if (!F.isIntrinsic ())
@@ -1365,9 +1366,27 @@ static bool runImpl(Module &M, AnalysisGetter &AG, TargetMachine &TM,
1365
1366
1366
1367
Attributor A (Functions, InfoCache, AC);
1367
1368
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
+ auto PhaseToString = [](ThinOrFullLTOPhase LTOPhase) -> StringRef {
1371
+ switch (LTOPhase) {
1372
+ case ThinOrFullLTOPhase::None:
1373
+ return " None" ;
1374
+ case ThinOrFullLTOPhase::ThinLTOPreLink:
1375
+ return " ThinLTOPreLink" ;
1376
+ case ThinOrFullLTOPhase::ThinLTOPostLink:
1377
+ return " ThinLTOPostLink" ;
1378
+ case ThinOrFullLTOPhase::FullLTOPreLink:
1379
+ return " FullLTOPreLink" ;
1380
+ case ThinOrFullLTOPhase::FullLTOPostLink:
1381
+ return " FullLTOPostLink" ;
1382
+ }
1383
+ };
1384
+ StringRef LTOPhaseStr = PhaseToString (LTOPhase);
1385
+ dbgs () << " [AMDGPUAttributor] Running at phase " << LTOPhaseStr << ' \n '
1386
+ << " [AMDGPUAttributor] Module " << M.getName () << " is "
1387
+ << (AC.IsClosedWorldModule ? " " : " not " )
1388
+ << " assumed to be a closed world.\n " ;
1389
+ });
1371
1390
1372
1391
for (auto *F : Functions) {
1373
1392
A.getOrCreateAAFor <AAAMDAttributes>(IRPosition::function (*F));
@@ -1420,7 +1439,8 @@ class AMDGPUAttributorLegacy : public ModulePass {
1420
1439
1421
1440
bool runOnModule (Module &M) override {
1422
1441
AnalysisGetter AG (this );
1423
- return runImpl (M, AG, *TM, /* Options=*/ {});
1442
+ return runImpl (M, AG, *TM, /* Options=*/ {},
1443
+ /* LTOPhase=*/ ThinOrFullLTOPhase::None);
1424
1444
}
1425
1445
1426
1446
void getAnalysisUsage (AnalysisUsage &AU) const override {
@@ -1441,8 +1461,8 @@ PreservedAnalyses llvm::AMDGPUAttributorPass::run(Module &M,
1441
1461
AnalysisGetter AG (FAM);
1442
1462
1443
1463
// TODO: Probably preserves CFG
1444
- return runImpl (M, AG, TM, Options) ? PreservedAnalyses::none ()
1445
- : PreservedAnalyses::all ();
1464
+ return runImpl (M, AG, TM, Options, LTOPhase ) ? PreservedAnalyses::none ()
1465
+ : PreservedAnalyses::all ();
1446
1466
}
1447
1467
1448
1468
char AMDGPUAttributorLegacy::ID = 0 ;
0 commit comments