@@ -23,22 +23,13 @@ using namespace llvm;
23
23
24
24
namespace {
25
25
26
- class AMDGPUInsertDelayAlu : public MachineFunctionPass {
26
+ class AMDGPUInsertDelayAlu {
27
27
public:
28
- static char ID;
29
-
30
28
const SIInstrInfo *SII;
31
29
const TargetRegisterInfo *TRI;
32
30
33
31
const TargetSchedModel *SchedModel;
34
32
35
- AMDGPUInsertDelayAlu () : MachineFunctionPass(ID) {}
36
-
37
- void getAnalysisUsage (AnalysisUsage &AU) const override {
38
- AU.setPreservesCFG ();
39
- MachineFunctionPass::getAnalysisUsage (AU);
40
- }
41
-
42
33
// Return true if MI waits for all outstanding VALU instructions to complete.
43
34
static bool instructionWaitsForVALU (const MachineInstr &MI) {
44
35
// These instruction types wait for VA_VDST==0 before issuing.
@@ -416,10 +407,7 @@ class AMDGPUInsertDelayAlu : public MachineFunctionPass {
416
407
return Changed;
417
408
}
418
409
419
- bool runOnMachineFunction (MachineFunction &MF) override {
420
- if (skipFunction (MF.getFunction ()))
421
- return false ;
422
-
410
+ bool run (MachineFunction &MF) {
423
411
LLVM_DEBUG (dbgs () << " AMDGPUInsertDelayAlu running on " << MF.getName ()
424
412
<< " \n " );
425
413
@@ -454,11 +442,39 @@ class AMDGPUInsertDelayAlu : public MachineFunctionPass {
454
442
}
455
443
};
456
444
445
+ class AMDGPUInsertDelayAluLegacy : public MachineFunctionPass {
446
+ public:
447
+ static char ID;
448
+
449
+ AMDGPUInsertDelayAluLegacy () : MachineFunctionPass(ID) {}
450
+
451
+ void getAnalysisUsage (AnalysisUsage &AU) const override {
452
+ AU.setPreservesCFG ();
453
+ MachineFunctionPass::getAnalysisUsage (AU);
454
+ }
455
+
456
+ bool runOnMachineFunction (MachineFunction &MF) override {
457
+ if (skipFunction (MF.getFunction ()))
458
+ return false ;
459
+ AMDGPUInsertDelayAlu Impl;
460
+ return Impl.run (MF);
461
+ }
462
+ };
457
463
} // namespace
458
464
459
- char AMDGPUInsertDelayAlu::ID = 0 ;
465
+ PreservedAnalyses
466
+ AMDGPUInsertDelayAluPass::run (MachineFunction &MF,
467
+ MachineFunctionAnalysisManager &MFAM) {
468
+ if (!AMDGPUInsertDelayAlu ().run (MF))
469
+ return PreservedAnalyses::all ();
470
+ auto PA = getMachineFunctionPassPreservedAnalyses ();
471
+ PA.preserveSet <CFGAnalyses>();
472
+ return PA;
473
+ } // end namespace llvm
474
+
475
+ char AMDGPUInsertDelayAluLegacy::ID = 0 ;
460
476
461
- char &llvm::AMDGPUInsertDelayAluID = AMDGPUInsertDelayAlu ::ID;
477
+ char &llvm::AMDGPUInsertDelayAluID = AMDGPUInsertDelayAluLegacy ::ID;
462
478
463
- INITIALIZE_PASS (AMDGPUInsertDelayAlu , DEBUG_TYPE, " AMDGPU Insert Delay ALU " ,
464
- false , false )
479
+ INITIALIZE_PASS (AMDGPUInsertDelayAluLegacy , DEBUG_TYPE,
480
+ " AMDGPU Insert Delay ALU " , false , false )
0 commit comments