|
LLVM
8.0.1
|
#include "Hexagon.h"#include "HexagonInstrInfo.h"#include "HexagonRegisterInfo.h"#include "HexagonSubtarget.h"#include "MCTargetDesc/HexagonMCTargetDesc.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallSet.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/StringRef.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineOperand.h"#include "llvm/CodeGen/MachineScheduler.h"#include "llvm/CodeGen/ScheduleDAG.h"#include "llvm/CodeGen/ScheduleDAGInstrs.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/ErrorHandling.h"#include <algorithm>#include <cassert>#include <map>#include "HexagonGenSubtargetInfo.inc"
Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "hexagon-subtarget" |
| #define | GET_SUBTARGETINFO_CTOR |
| #define | GET_SUBTARGETINFO_TARGET_DESC |
Functions | |
| static SUnit * | getZeroLatency (SUnit *N, SmallVector< SDep, 4 > &Deps) |
| If the SUnit has a zero latency edge, return the other SUnit. More... | |
Variables | |
| static cl::opt< bool > | EnableBSBSched ("enable-bsb-sched", cl::Hidden, cl::ZeroOrMore, cl::init(true)) |
| static cl::opt< bool > | EnableTCLatencySched ("enable-tc-latency-sched", cl::Hidden, cl::ZeroOrMore, cl::init(false)) |
| static cl::opt< bool > | EnableDotCurSched ("enable-cur-sched", cl::Hidden, cl::ZeroOrMore, cl::init(true), cl::desc("Enable the scheduler to generate .cur")) |
| static cl::opt< bool > | DisableHexagonMISched ("disable-hexagon-misched", cl::Hidden, cl::ZeroOrMore, cl::init(false), cl::desc("Disable Hexagon MI Scheduling")) |
| static cl::opt< bool > | EnableSubregLiveness ("hexagon-subreg-liveness", cl::Hidden, cl::ZeroOrMore, cl::init(true), cl::desc("Enable subregister liveness tracking for Hexagon")) |
| static cl::opt< bool > | OverrideLongCalls ("hexagon-long-calls", cl::Hidden, cl::ZeroOrMore, cl::init(false), cl::desc("If present, forces/disables the use of long calls")) |
| static cl::opt< bool > | EnablePredicatedCalls ("hexagon-pred-calls", cl::Hidden, cl::ZeroOrMore, cl::init(false), cl::desc("Consider calls to be predicable")) |
| static cl::opt< bool > | SchedPredsCloser ("sched-preds-closer", cl::Hidden, cl::ZeroOrMore, cl::init(true)) |
| static cl::opt< bool > | SchedRetvalOptimization ("sched-retval-optimization", cl::Hidden, cl::ZeroOrMore, cl::init(true)) |
| static cl::opt< bool > | EnableCheckBankConflict ("hexagon-check-bank-conflict", cl::Hidden, cl::ZeroOrMore, cl::init(true), cl::desc("Enable checking for cache bank conflicts")) |
| #define DEBUG_TYPE "hexagon-subtarget" |
Definition at line 36 of file HexagonSubtarget.cpp.
| #define GET_SUBTARGETINFO_CTOR |
Definition at line 38 of file HexagonSubtarget.cpp.
| #define GET_SUBTARGETINFO_TARGET_DESC |
Definition at line 39 of file HexagonSubtarget.cpp.
|
static |
If the SUnit has a zero latency edge, return the other SUnit.
Definition at line 476 of file HexagonSubtarget.cpp.
References llvm::HexagonInstrInfo::canExecuteInBundle(), llvm::SmallSet< T, N, C >::count(), llvm::SUnit::getInstr(), llvm::HexagonSubtarget::hasV60Ops(), I, llvm::SmallSet< T, N, C >::insert(), llvm::SUnit::isBoundaryNode(), llvm::MachineInstr::isPHI(), llvm::HexagonInstrInfo::isToBeScheduledASAP(), llvm::SUnit::NodeNum, llvm::SUnit::Preds, llvm::SUnit::Succs, and TII.
|
static |
Referenced by llvm::HexagonSubtarget::enableMachineScheduler().
Referenced by llvm::HexagonSubtarget::initializeSubtargetDependencies().
|
static |
Referenced by llvm::HexagonSubtarget::BankConflictMutation::apply().
|
static |
Referenced by llvm::HexagonSubtarget::adjustSchedDependency().
|
static |
Referenced by llvm::HexagonSubtarget::usePredicatedCalls().
|
static |
Referenced by llvm::HexagonSubtarget::enableSubRegLiveness().
|
static |
|
static |
Referenced by llvm::HexagonSubtarget::initializeSubtargetDependencies().
|
static |
Referenced by llvm::HexagonSubtarget::CallMutation::apply().
|
static |
Referenced by llvm::HexagonSubtarget::CallMutation::apply().
1.8.13