LLVM: lib/Target/Hexagon/HexagonInstrInfo.cpp File Reference (original) (raw)
Go to the source code of this file.
| Namespaces | |
|---|---|
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
| namespace | llvm::HexagonFUnits |
| Macros | |
|---|---|
| #define | DEBUG_TYPE "hexagon-instrinfo" |
| #define | GET_INSTRINFO_CTOR_DTOR |
| #define | GET_INSTRMAP_INFO |
| Functions | |
|---|---|
| bool | llvm::HexagonFUnits::isSlot0Only (unsigned units) |
| static bool | isIntRegForSubInst (Register Reg) |
| static bool | isDblRegForSubInst (Register Reg, const HexagonRegisterInfo &HRI) |
| static unsigned | nonDbgMICount (MachineBasicBlock::const_instr_iterator MIB, MachineBasicBlock::const_instr_iterator MIE) |
| Calculate number of instructions excluding the debug instructions. | |
| static void | parseOperands (const MachineInstr &MI, SmallVectorImpl< Register > &Defs, SmallVectorImpl< Register > &Uses) |
| Gather register def/uses from MI. | |
| static bool | isDuplexPairMatch (unsigned Ga, unsigned Gb) |
| static void | getLiveInRegsAt (LivePhysRegs &Regs, const MachineInstr &MI) |
| static void | getLiveOutRegsAt (LivePhysRegs &Regs, const MachineInstr &MI) |
| Variables | |
|---|---|
| cl::opt< bool > | ScheduleInlineAsm ("hexagon-sched-inline-asm", cl::Hidden, cl::init(false), cl::desc("Do not consider inline-asm a scheduling/" "packetization boundary.")) |
| static cl::opt< bool > | EnableBranchPrediction ("hexagon-enable-branch-prediction", cl::Hidden, cl::init(true), cl::desc("Enable branch prediction")) |
| static cl::opt< bool > | DisableNVSchedule ("disable-hexagon-nv-schedule", cl::Hidden, cl::desc("Disable schedule adjustment for new value stores.")) |
| static cl::opt< bool > | EnableTimingClassLatency ("enable-timing-class-latency", cl::Hidden, cl::init(false), cl::desc("Enable timing class latency")) |
| static cl::opt< bool > | EnableALUForwarding ("enable-alu-forwarding", cl::Hidden, cl::init(true), cl::desc("Enable vec alu forwarding")) |
| static cl::opt< bool > | EnableACCForwarding ("enable-acc-forwarding", cl::Hidden, cl::init(true), cl::desc("Enable vec acc forwarding")) |
| static cl::opt< bool > | BranchRelaxAsmLarge ("branch-relax-asm-large", cl::init(true), cl::Hidden, cl::desc("branch relax asm")) |
| static cl::opt< bool > | UseDFAHazardRec ("dfa-hazard-rec", cl::init(true), cl::Hidden, cl::desc("Use the DFA based hazard recognizer.")) |
| const int | Hexagon_MEMW_OFFSET_MAX = 4095 |
| Constants for Hexagon instructions. | |
| const int | Hexagon_MEMW_OFFSET_MIN = -4096 |
| const int | Hexagon_MEMD_OFFSET_MAX = 8191 |
| const int | Hexagon_MEMD_OFFSET_MIN = -8192 |
| const int | Hexagon_MEMH_OFFSET_MAX = 2047 |
| const int | Hexagon_MEMH_OFFSET_MIN = -2048 |
| const int | Hexagon_MEMB_OFFSET_MAX = 1023 |
| const int | Hexagon_MEMB_OFFSET_MIN = -1024 |
| const int | Hexagon_ADDI_OFFSET_MAX = 32767 |
| const int | Hexagon_ADDI_OFFSET_MIN = -32768 |
◆ DEBUG_TYPE
#define DEBUG_TYPE "hexagon-instrinfo"
◆ GET_INSTRINFO_CTOR_DTOR
#define GET_INSTRINFO_CTOR_DTOR
◆ GET_INSTRMAP_INFO
#define GET_INSTRMAP_INFO
◆ getLiveInRegsAt()
◆ getLiveOutRegsAt()
◆ isDblRegForSubInst()
◆ isDuplexPairMatch()
◆ isIntRegForSubInst()
◆ nonDbgMICount()
◆ parseOperands()
◆ BranchRelaxAsmLarge
| cl::opt< bool > BranchRelaxAsmLarge("branch-relax-asm-large", cl::init(true), cl::Hidden, cl::desc("branch relax asm")) ( "branch-relax-asm-large" , cl::init(true) , cl::Hidden , cl::desc("branch relax asm") ) | static |
|---|
◆ DisableNVSchedule
| cl::opt< bool > DisableNVSchedule("disable-hexagon-nv-schedule", cl::Hidden, cl::desc("Disable schedule adjustment for new value stores.")) ( "disable-hexagon-nv-schedule" , cl::Hidden , cl::desc("Disable schedule adjustment for new value stores.") ) | static |
|---|
◆ EnableACCForwarding
| cl::opt< bool > EnableACCForwarding("enable-acc-forwarding", cl::Hidden, cl::init(true), cl::desc("Enable vec acc forwarding")) ( "enable-acc-forwarding" , cl::Hidden , cl::init(true) , cl::desc("Enable vec acc forwarding") ) | static |
|---|
◆ EnableALUForwarding
| cl::opt< bool > EnableALUForwarding("enable-alu-forwarding", cl::Hidden, cl::init(true), cl::desc("Enable vec alu forwarding")) ( "enable-alu-forwarding" , cl::Hidden , cl::init(true) , cl::desc("Enable vec alu forwarding") ) | static |
|---|
◆ EnableBranchPrediction
| cl::opt< bool > EnableBranchPrediction("hexagon-enable-branch-prediction", cl::Hidden, cl::init(true), cl::desc("Enable branch prediction")) ( "hexagon-enable-branch-prediction" , cl::Hidden , cl::init(true) , cl::desc("Enable branch prediction") ) | static |
|---|
◆ EnableTimingClassLatency
| cl::opt< bool > EnableTimingClassLatency("enable-timing-class-latency", cl::Hidden, cl::init(false), cl::desc("Enable timing class latency")) ( "enable-timing-class-latency" , cl::Hidden , cl::init(false) , cl::desc("Enable timing class latency") ) | static |
|---|
◆ Hexagon_ADDI_OFFSET_MAX
const int Hexagon_ADDI_OFFSET_MAX = 32767
◆ Hexagon_ADDI_OFFSET_MIN
const int Hexagon_ADDI_OFFSET_MIN = -32768
◆ Hexagon_MEMB_OFFSET_MAX
const int Hexagon_MEMB_OFFSET_MAX = 1023
◆ Hexagon_MEMB_OFFSET_MIN
const int Hexagon_MEMB_OFFSET_MIN = -1024
◆ Hexagon_MEMD_OFFSET_MAX
const int Hexagon_MEMD_OFFSET_MAX = 8191
◆ Hexagon_MEMD_OFFSET_MIN
const int Hexagon_MEMD_OFFSET_MIN = -8192
◆ Hexagon_MEMH_OFFSET_MAX
const int Hexagon_MEMH_OFFSET_MAX = 2047
◆ Hexagon_MEMH_OFFSET_MIN
const int Hexagon_MEMH_OFFSET_MIN = -2048
◆ Hexagon_MEMW_OFFSET_MAX
const int Hexagon_MEMW_OFFSET_MAX = 4095
◆ Hexagon_MEMW_OFFSET_MIN
const int Hexagon_MEMW_OFFSET_MIN = -4096
◆ ScheduleInlineAsm
| cl::opt< bool > ScheduleInlineAsm("hexagon-sched-inline-asm", cl::Hidden, cl::init(false), cl::desc("Do not consider inline-asm a scheduling/" "packetization boundary.")) | ( | "hexagon-sched-inline-asm" | , |
|---|---|---|---|
| cl::Hidden | , | ||
| cl::init(false) | , | ||
| cl::desc("Do not consider inline-asm a scheduling/" "packetization boundary.") | ) |
◆ UseDFAHazardRec
| cl::opt< bool > UseDFAHazardRec("dfa-hazard-rec", cl::init(true), cl::Hidden, cl::desc("Use the DFA based hazard recognizer.")) ( "dfa-hazard-rec" , cl::init(true) , cl::Hidden , cl::desc("Use the DFA based hazard recognizer.") ) | static |
|---|