LLVM API Documentation
#include "llvm/CodeGen/DFAPacketizer.h"#include "Hexagon.h"#include "HexagonMachineFunctionInfo.h"#include "HexagonRegisterInfo.h"#include "HexagonSubtarget.h"#include "HexagonTargetMachine.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/Statistic.h"#include "llvm/CodeGen/LatencyPriorityQueue.h"#include "llvm/CodeGen/MachineDominators.h"#include "llvm/CodeGen/MachineFrameInfo.h"#include "llvm/CodeGen/MachineFunctionAnalysis.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineLoopInfo.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/Passes.h"#include "llvm/CodeGen/ScheduleDAG.h"#include "llvm/CodeGen/ScheduleDAGInstrs.h"#include "llvm/CodeGen/ScheduleHazardRecognizer.h"#include "llvm/CodeGen/SchedulerRegistry.h"#include "llvm/MC/MCInstrItineraries.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/Debug.h"#include "llvm/Support/MathExtras.h"#include "llvm/Target/TargetInstrInfo.h"#include "llvm/Target/TargetMachine.h"#include "llvm/Target/TargetRegisterInfo.h"#include <map>#include <vector>
Go to the source code of this file.
| #define DEBUG_TYPE "packets" |
Definition at line 53 of file HexagonVLIWPacketizer.cpp.
| enum PredicateKind |
Definition at line 454 of file HexagonVLIWPacketizer.cpp.
| static bool DoesModifyCalleeSavedReg | ( | MachineInstr * | MI, |
| const TargetRegisterInfo * | TRI | ||
| ) | [static] |
DoesModifyCalleeSavedReg - Returns true if the instruction modifies a callee-saved register.
Definition at line 391 of file HexagonVLIWPacketizer.cpp.
References llvm::TargetRegisterInfo::getCalleeSavedRegs(), and llvm::MachineInstr::modifiesRegister().
| static MachineOperand& GetPostIncrementOperand | ( | MachineInstr * | MI, |
| const HexagonInstrInfo * | QII | ||
| ) | [static] |
Definition at line 473 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::getDesc(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDef(), llvm::HexagonInstrInfo::isPostIncrement(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUse(), llvm_unreachable, llvm::MCInstrDesc::mayLoad(), and llvm::MCInstrDesc::mayStore().
| static unsigned getPredicatedRegister | ( | MachineInstr * | MI, |
| const HexagonInstrInfo * | QII | ||
| ) | [static] |
Gets the predicate register of a predicated instruction.
We use the following rule: The first predicate register that is a use is the predicate register of a predicated instruction.
Definition at line 840 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineOperand::getReg(), llvm::HexagonInstrInfo::isPredicated(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUse(), llvm_unreachable, llvm::MachineInstr::operands_begin(), and llvm::MachineInstr::operands_end().
| static PredicateKind getPredicateSense | ( | MachineInstr * | MI, |
| const HexagonInstrInfo * | QII | ||
| ) | [static] |
Returns true if an instruction is predicated on p0 and false if it's predicated on !p0.
Definition at line 462 of file HexagonVLIWPacketizer.cpp.
References llvm::HexagonInstrInfo::isPredicated(), llvm::HexagonInstrInfo::isPredicatedTrue(), PK_False, PK_True, and PK_Unknown.
| static MachineOperand& GetStoreValueOperand | ( | MachineInstr * | MI | ) | [static] |
Definition at line 513 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::getNumOperands(), and llvm::MachineInstr::getOperand().
| INITIALIZE_PASS_BEGIN | ( | HexagonPacketizer | , |
| "packets" | , | ||
| "Hexagon Packetizer" | , | ||
| false | , | ||
| false | |||
| ) |
| static bool IsControlFlow | ( | MachineInstr * | MI | ) | [static] |
Definition at line 380 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::getDesc(), llvm::MCInstrDesc::isCall(), and llvm::MCInstrDesc::isTerminator().
| static bool IsDirectJump | ( | MachineInstr * | MI | ) | [static] |
Definition at line 368 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::getOpcode().
| static bool IsIndirectCall | ( | MachineInstr * | MI | ) | [static] |
Definition at line 266 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::getOpcode().
| static bool IsLoopN | ( | MachineInstr * | MI | ) | [static] |
Definition at line 384 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::getOpcode().
| static bool IsRegDependence | ( | const SDep::Kind | DepType | ) | [static] |
Definition at line 363 of file HexagonVLIWPacketizer.cpp.
References llvm::SDep::Anti, llvm::SDep::Data, and llvm::SDep::Output.
| static bool IsSchedBarrier | ( | MachineInstr * | MI | ) | [static] |
Definition at line 372 of file HexagonVLIWPacketizer.cpp.
References llvm::HexagonISD::BARRIER, and llvm::MachineInstr::getOpcode().
| Hexagon false |
Definition at line 180 of file HexagonVLIWPacketizer.cpp.
| Hexagon Packetizer |
Definition at line 180 of file HexagonVLIWPacketizer.cpp.
cl::opt<bool> PacketizeVolatiles("hexagon-packetize-volatiles", cl::ZeroOrMore, cl::Hidden, cl::init(true), cl::desc("Allow non-solo packetization of volatile memory references")) [static] |
Definition at line 180 of file HexagonVLIWPacketizer.cpp.