================ @@ -57,15 +59,21 @@ class LiveRegMatrix : public MachineFunctionPass { unsigned RegMaskVirtReg = 0; BitVector RegMaskUsable; - // MachineFunctionPass boilerplate. - void getAnalysisUsage(AnalysisUsage &) const override; - bool runOnMachineFunction(MachineFunction &) override; - void releaseMemory() override; + LiveRegMatrix() = default; + void releaseMemory(); public: - static char ID; - - LiveRegMatrix(); + LiveRegMatrix(LiveRegMatrix &&Other) + : TRI(Other.TRI), LIS(Other.LIS), VRM(Other.VRM), UserTag(Other.UserTag), + Matrix(std::move(Other.Matrix)), Queries(std::move(Other.Queries)), + RegMaskTag(Other.RegMaskTag), RegMaskVirtReg(Other.RegMaskVirtReg), + RegMaskUsable(std::move(Other.RegMaskUsable)) { + Other.TRI = nullptr; + Other.LIS = nullptr; + Other.VRM = nullptr; + } + + void init(MachineFunction &MF, LiveIntervals *LIS, VirtRegMap *VRM); ---------------- arsenm wrote:
Make these references, these are required anyway https://github.com/llvm/llvm-project/pull/109938 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits