xref: /llvm-project/llvm/lib/Target/AArch64/AArch64MachineScheduler.h (revision 572fc7d2fd14b768b58e697015b18c46cafb421c)
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