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