#include "ARMHazardRecognizer.h"
#include "ARMBaseInstrInfo.h"
#include "ARMBaseRegisterInfo.h"
#include "ARMSubtarget.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/ScheduleDAG.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/Support/CommandLine.h"
usingnamespacellvm;
static cl::opt<int> DataBankMask("arm-data-bank-mask", cl::init(-1),
cl::Hidden);
static cl::opt<bool> AssumeITCMConflict("arm-assume-itcm-bankconflict",
cl::init(false), cl::Hidden);
static bool hasRAWHazard(MachineInstr *DefMI, MachineInstr *MI,
const TargetRegisterInfo &TRI) { … }
ScheduleHazardRecognizer::HazardType
ARMHazardRecognizerFPMLx::getHazardType(SUnit *SU, int Stalls) { … }
void ARMHazardRecognizerFPMLx::Reset() { … }
void ARMHazardRecognizerFPMLx::EmitInstruction(SUnit *SU) { … }
void ARMHazardRecognizerFPMLx::AdvanceCycle() { … }
void ARMHazardRecognizerFPMLx::RecedeCycle() { … }
static bool getBaseOffset(const MachineInstr &MI, const MachineOperand *&BaseOp,
int64_t &Offset) { … }
ARMBankConflictHazardRecognizer::ARMBankConflictHazardRecognizer(
const ScheduleDAG *DAG, int64_t CPUBankMask, bool CPUAssumeITCMConflict)
: … { … }
ScheduleHazardRecognizer::HazardType
ARMBankConflictHazardRecognizer::CheckOffsets(unsigned O0, unsigned O1) { … }
ScheduleHazardRecognizer::HazardType
ARMBankConflictHazardRecognizer::getHazardType(SUnit *SU, int Stalls) { … }
void ARMBankConflictHazardRecognizer::Reset() { … }
void ARMBankConflictHazardRecognizer::EmitInstruction(SUnit *SU) { … }
void ARMBankConflictHazardRecognizer::AdvanceCycle() { … }
void ARMBankConflictHazardRecognizer::RecedeCycle() { … }