1*572fc7d2SAndre Vieira //===- AArch64MachineScheduler.h - Custom AArch64 MI scheduler --*- C++ -*-===// 2*572fc7d2SAndre Vieira // 3*572fc7d2SAndre Vieira // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*572fc7d2SAndre Vieira // See https://llvm.org/LICENSE.txt for license information. 5*572fc7d2SAndre Vieira // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*572fc7d2SAndre Vieira // 7*572fc7d2SAndre Vieira //===----------------------------------------------------------------------===// 8*572fc7d2SAndre Vieira // 9*572fc7d2SAndre Vieira // Custom AArch64 MI scheduler. 10*572fc7d2SAndre Vieira // 11*572fc7d2SAndre Vieira //===----------------------------------------------------------------------===// 12*572fc7d2SAndre Vieira 13*572fc7d2SAndre Vieira #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64MACHINESCHEDULER_H 14*572fc7d2SAndre Vieira #define LLVM_LIB_TARGET_AARCH64_AARCH64MACHINESCHEDULER_H 15*572fc7d2SAndre Vieira 16*572fc7d2SAndre Vieira #include "llvm/CodeGen/MachineScheduler.h" 17*572fc7d2SAndre Vieira 18*572fc7d2SAndre Vieira namespace llvm { 19*572fc7d2SAndre Vieira 20*572fc7d2SAndre Vieira /// A MachineSchedStrategy implementation for AArch64 post RA scheduling. 21*572fc7d2SAndre Vieira class AArch64PostRASchedStrategy : public PostGenericScheduler { 22*572fc7d2SAndre Vieira public: AArch64PostRASchedStrategy(const MachineSchedContext * C)23*572fc7d2SAndre Vieira AArch64PostRASchedStrategy(const MachineSchedContext *C) : 24*572fc7d2SAndre Vieira PostGenericScheduler(C) {} 25*572fc7d2SAndre Vieira 26*572fc7d2SAndre Vieira protected: 27*572fc7d2SAndre Vieira bool tryCandidate(SchedCandidate &Cand, SchedCandidate &TryCand) override; 28*572fc7d2SAndre Vieira }; 29*572fc7d2SAndre Vieira 30*572fc7d2SAndre Vieira } // end namespace llvm 31*572fc7d2SAndre Vieira 32*572fc7d2SAndre Vieira #endif 33*572fc7d2SAndre Vieira 34