// Copyright Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace rocRoller { namespace Scheduling { std::shared_ptr createObserver(ContextPtr const& ctx) { PotentialObservers< // Always present AllocatingObserver, WaitcntObserver, MFMAObserver, MFMACoexecObserver, VMEMObserver, DSMEMObserver, WeightlessDSMemObserver, WMMAObserver, // Hazard Observers ACCVGPRReadWrite, ACCVGPRWriteWrite, BufferStoreDwordXXRead, CMPXWriteExec, DGEMM4x4x4Write, DGEMM16x16x4Write, DLWrite, OPSEL94x, VALUTransWrite94x, VALUWrite, VALUWriteReadlane94x, VALUWriteSGPRVCC, VALUWriteSGPRVMEM, VALUWriteVCCVDIVFMAS, VCMPXWrite94x, WMMAReadSrcD, WMMAWriteSrcD, WMMAWrite, WMMAOrSWMMACReadDAfterWMMA, VALUReadDAfterWMMAOrSWMMAC, VALUWriteAfterWMMAOrSWMMACWrite, VALUWriteAfterWMMAOrSWMMACRead, XDLReadSrcC908, XDLReadSrcC90a, XDLReadSrcC94x, XDLWrite908, XDLWrite90a, XDLWrite94x, // Other Observers FileWritingObserver, RegisterLivenessObserver, SupportedInstructionObserver, VGPRIndexingObserver> potentialObservers; return createMetaObserver(ctx, potentialObservers); } }; }