From 19c42f672f942518b4d711a0c734693a9244f78c Mon Sep 17 00:00:00 2001 From: Darshan Bhat Date: Sat, 11 Feb 2023 13:42:29 +0530 Subject: [DFAPacketizer] Move DefaultVLIWScheduler class declaration to header file This change moves "DefaultVLIWScheduler" class declaration from DFAPacketizer.cpp to DFAPacketizer.h. This is needed because there is a protected class member of type "DefaultVLIWScheduler*" in "VLIWPacketizerList" class. The derived classes cannot use this memeber unless declaration is available to it. More specifically : // Without this change ``` class HexagonPacketizerList : public VLIWPacketizerList { public : HexagonPacketizerList() { // Below line will cause incomplete class error since // declaration was not available through header. VLIWScheduler->schedule(); } } ``` Reviewed By: kparzysz Differential Revision: https://reviews.llvm.org/D139767 --- llvm/lib/CodeGen/DFAPacketizer.cpp | 30 ------------------------------ 1 file changed, 30 deletions(-) (limited to 'llvm/lib/CodeGen/DFAPacketizer.cpp') diff --git a/llvm/lib/CodeGen/DFAPacketizer.cpp b/llvm/lib/CodeGen/DFAPacketizer.cpp index 34fb1d2..cf02918b9 100644 --- a/llvm/lib/CodeGen/DFAPacketizer.cpp +++ b/llvm/lib/CodeGen/DFAPacketizer.cpp @@ -29,8 +29,6 @@ #include "llvm/CodeGen/MachineInstr.h" #include "llvm/CodeGen/MachineInstrBundle.h" #include "llvm/CodeGen/ScheduleDAG.h" -#include "llvm/CodeGen/ScheduleDAGInstrs.h" -#include "llvm/CodeGen/ScheduleDAGMutation.h" #include "llvm/CodeGen/TargetInstrInfo.h" #include "llvm/CodeGen/TargetSubtargetInfo.h" #include "llvm/MC/MCInstrDesc.h" @@ -98,34 +96,6 @@ unsigned DFAPacketizer::getUsedResources(unsigned InstIdx) { return RS[InstIdx] ^ RS[InstIdx - 1]; } -namespace llvm { - -// This class extends ScheduleDAGInstrs and overrides the schedule method -// to build the dependence graph. -class DefaultVLIWScheduler : public ScheduleDAGInstrs { -private: - AAResults *AA; - /// Ordered list of DAG postprocessing steps. - std::vector> Mutations; - -public: - DefaultVLIWScheduler(MachineFunction &MF, MachineLoopInfo &MLI, - AAResults *AA); - - // Actual scheduling work. - void schedule() override; - - /// DefaultVLIWScheduler takes ownership of the Mutation object. - void addMutation(std::unique_ptr Mutation) { - Mutations.push_back(std::move(Mutation)); - } - -protected: - void postprocessDAG(); -}; - -} // end namespace llvm - DefaultVLIWScheduler::DefaultVLIWScheduler(MachineFunction &MF, MachineLoopInfo &MLI, AAResults *AA) -- cgit v1.1