#include "AArch64.h"
#include "AArch64Subtarget.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
usingnamespacellvm;
#define DEBUG_TYPE …
#define AARCH64_CONDBR_TUNING_NAME …
namespace {
class AArch64CondBrTuning : public MachineFunctionPass { … };
}
char AArch64CondBrTuning::ID = …;
INITIALIZE_PASS(…)
void AArch64CondBrTuning::getAnalysisUsage(AnalysisUsage &AU) const { … }
MachineInstr *AArch64CondBrTuning::getOperandDef(const MachineOperand &MO) { … }
MachineInstr *AArch64CondBrTuning::convertToFlagSetting(MachineInstr &MI,
bool IsFlagSetting,
bool Is64Bit) { … }
MachineInstr *AArch64CondBrTuning::convertToCondBr(MachineInstr &MI) { … }
bool AArch64CondBrTuning::tryToTuneBranch(MachineInstr &MI,
MachineInstr &DefMI) { … }
bool AArch64CondBrTuning::runOnMachineFunction(MachineFunction &MF) { … }
FunctionPass *llvm::createAArch64CondBrTuning() { … }