llvm-project/llvm/lib/Target/AArch64/AArch64MachineScheduler.h
Andre Vieira 572fc7d2fd [AArch64] Order STP Q's by ascending address
This patch adds an AArch64 specific PostRA MachineScheduler to try to schedule
STP Q's to the same base-address in ascending order of offsets. We have found
this to improve performance on Neoverse N1 and should not hurt other AArch64
cores.

Differential Revision: https://reviews.llvm.org/D125377
2022-05-23 09:50:44 +01:00

34 lines
1.0 KiB
C++

//===- AArch64MachineScheduler.h - Custom AArch64 MI scheduler --*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// Custom AArch64 MI scheduler.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_LIB_TARGET_AARCH64_AARCH64MACHINESCHEDULER_H
#define LLVM_LIB_TARGET_AARCH64_AARCH64MACHINESCHEDULER_H
#include "llvm/CodeGen/MachineScheduler.h"
namespace llvm {
/// A MachineSchedStrategy implementation for AArch64 post RA scheduling.
class AArch64PostRASchedStrategy : public PostGenericScheduler {
public:
AArch64PostRASchedStrategy(const MachineSchedContext *C) :
PostGenericScheduler(C) {}
protected:
bool tryCandidate(SchedCandidate &Cand, SchedCandidate &TryCand) override;
};
} // end namespace llvm
#endif