LLVM 20.0.0git
|
#include "VEInstrInfo.h"
#include "VE.h"
#include "VEMachineFunctionInfo.h"
#include "VESubtarget.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineMemOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "VEGenInstrInfo.inc"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "ve-instr-info" |
#define | GET_INSTRINFO_CTOR_DTOR |
#define | BRKIND(NAME) (Opc == NAME##a || Opc == NAME##a_nt || Opc == NAME##a_t) |
#define | BRKIND(NAME) |
#define | BRKIND(NAME) (Opc == NAME##ari || Opc == NAME##ari_nt || Opc == NAME##ari_t) |
#define | INSTRKIND(NAME) |
#define | NCINSTRKIND(NAME) |
Functions | |
static bool | IsIntegerCC (unsigned CC) |
static VECC::CondCode | GetOppositeBranchCondition (VECC::CondCode CC) |
static bool | isUncondBranchOpcode (int Opc) |
static bool | isCondBranchOpcode (int Opc) |
static bool | isIndirectBranchOpcode (int Opc) |
static void | parseCondBranch (MachineInstr *LastInst, MachineBasicBlock *&Target, SmallVectorImpl< MachineOperand > &Cond) |
static bool | IsAliasOfSX (Register Reg) |
static void | copyPhysSubRegs (MachineBasicBlock &MBB, MachineBasicBlock::iterator I, const DebugLoc &DL, MCRegister DestReg, MCRegister SrcReg, bool KillSrc, const MCInstrDesc &MCID, unsigned int NumSubRegs, const unsigned *SubRegIdx, const TargetRegisterInfo *TRI) |
static Register | getVM512Upper (Register reg) |
static Register | getVM512Lower (Register reg) |
static void | expandPseudoLogM (MachineInstr &MI, const MCInstrDesc &MCID) |
static void | addOperandsForVFMK (MachineInstrBuilder &MIB, MachineInstr &MI, bool Upper) |
static void | expandPseudoVFMK (const TargetInstrInfo &TI, MachineInstr &MI) |
#define BRKIND | ( | NAME | ) | (Opc == NAME##a || Opc == NAME##a_nt || Opc == NAME##a_t) |
#define BRKIND | ( | NAME | ) |
#define BRKIND | ( | NAME | ) | (Opc == NAME##ari || Opc == NAME##ari_nt || Opc == NAME##ari_t) |
#define DEBUG_TYPE "ve-instr-info" |
Definition at line 28 of file VEInstrInfo.cpp.
#define GET_INSTRINFO_CTOR_DTOR |
Definition at line 32 of file VEInstrInfo.cpp.
#define INSTRKIND | ( | NAME | ) |
#define NCINSTRKIND | ( | NAME | ) |
|
static |
Definition at line 807 of file VEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), getVM512Lower(), getVM512Upper(), MI, llvm::report_fatal_error(), and llvm::Upper.
Referenced by expandPseudoVFMK().
|
static |
Definition at line 326 of file VEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::MachineInstr::addRegisterDefined(), llvm::MachineInstr::addRegisterKilled(), assert(), llvm::BuildMI(), DL, llvm::MachineInstrBuilder::getInstr(), llvm::MCInstrDesc::getOpcode(), I, Idx, llvm_unreachable, MBB, and TRI.
Referenced by llvm::VEInstrInfo::copyPhysReg().
|
static |
Definition at line 782 of file VEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::BuildMI(), DL, getVM512Lower(), getVM512Upper(), MBB, and MI.
Referenced by llvm::VEInstrInfo::expandPostRAPseudo().
|
static |
Definition at line 842 of file VEInstrInfo.cpp.
References addOperandsForVFMK(), llvm::BuildMI(), DL, llvm::find_if(), llvm::MCInstrInfo::get(), MBB, MI, P, and llvm::report_fatal_error().
Referenced by llvm::VEInstrInfo::expandPostRAPseudo().
|
static |
Definition at line 43 of file VEInstrInfo.cpp.
References CC, llvm::VECC::CC_AF, llvm::VECC::CC_AT, llvm::VECC::CC_EQ, llvm::VECC::CC_EQNAN, llvm::VECC::CC_G, llvm::VECC::CC_GE, llvm::VECC::CC_GENAN, llvm::VECC::CC_GNAN, llvm::VECC::CC_IEQ, llvm::VECC::CC_IG, llvm::VECC::CC_IGE, llvm::VECC::CC_IL, llvm::VECC::CC_ILE, llvm::VECC::CC_INE, llvm::VECC::CC_L, llvm::VECC::CC_LE, llvm::VECC::CC_LENAN, llvm::VECC::CC_LNAN, llvm::VECC::CC_NAN, llvm::VECC::CC_NE, llvm::VECC::CC_NENAN, llvm::VECC::CC_NUM, llvm_unreachable, and llvm::VECC::UNKNOWN.
Definition at line 779 of file VEInstrInfo.cpp.
References getVM512Upper().
Referenced by addOperandsForVFMK(), llvm::VEInstrInfo::expandPostRAPseudo(), and expandPseudoLogM().
Definition at line 775 of file VEInstrInfo.cpp.
Referenced by addOperandsForVFMK(), llvm::VEInstrInfo::expandPostRAPseudo(), expandPseudoLogM(), and getVM512Lower().
Definition at line 321 of file VEInstrInfo.cpp.
Referenced by llvm::VEInstrInfo::copyPhysReg().
|
static |
Definition at line 112 of file VEInstrInfo.cpp.
References BRKIND.
|
static |
Definition at line 124 of file VEInstrInfo.cpp.
Definition at line 41 of file VEInstrInfo.cpp.
References CC, and llvm::VECC::CC_AF.
Referenced by llvm::VEInstrInfo::insertBranch().
|
static |
Definition at line 97 of file VEInstrInfo.cpp.
|
static |
Definition at line 137 of file VEInstrInfo.cpp.
References Cond, llvm::MachineOperand::CreateImm(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getMBB(), and llvm::MachineInstr::getOperand().