|
LLVM 24.0.0git
|
#include "MCTargetDesc/X86BaseInfo.h"#include "X86.h"#include "X86InstrInfo.h"#include "X86Subtarget.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/StringRef.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineFunctionAnalysisManager.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineOperand.h"#include "llvm/CodeGen/MachinePassManager.h"#include "llvm/IR/Analysis.h"#include "llvm/MC/MCInstrDesc.h"#include "llvm/Pass.h"#include <atomic>#include <cassert>#include <cstdint>#include "X86GenInstrMapping.inc"Go to the source code of this file.
Macros | |
| #define | COMP_EVEX_DESC "Compressing EVEX instrs when possible" |
| #define | COMP_EVEX_NAME "x86-compress-evex" |
| #define | DEBUG_TYPE COMP_EVEX_NAME |
| #define | GET_X86_COMPRESS_EVEX_TABLE |
Variables | |
| cl::opt< bool > | X86EnableAPXForRelocation |
| #define COMP_EVEX_DESC "Compressing EVEX instrs when possible" |
Definition at line 63 of file X86CompressEVEX.cpp.
Referenced by INITIALIZE_PASS().
| #define COMP_EVEX_NAME "x86-compress-evex" |
Definition at line 64 of file X86CompressEVEX.cpp.
Referenced by INITIALIZE_PASS().
| #define DEBUG_TYPE COMP_EVEX_NAME |
Definition at line 66 of file X86CompressEVEX.cpp.
| #define GET_X86_COMPRESS_EVEX_TABLE |
Definition at line 72 of file X86CompressEVEX.cpp.
|
static |
Definition at line 530 of file X86CompressEVEX.cpp.
References llvm::X86::AC_EVEX_2_EVEX, llvm::X86::AC_EVEX_2_LEGACY, llvm::X86::AC_EVEX_2_VEX, llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::ArrayRef(), assert(), llvm::BuildMI(), contains(), llvm::X86II::EncodingMask, llvm::X86II::EVEX, llvm::X86II::EVEX_B, llvm::X86II::EVEX_K, llvm::X86II::EVEX_L2, llvm::X86II::EVEX_NF, llvm::X86::getFirstAddrOperandIdx(), llvm::X86::getNFVariant(), llvm::X86::getNonNDVariant(), llvm::MachineOperand::getReg(), llvm::getX86SubSuperRegister(), llvm::X86II::hasNewDataDest(), I, llvm::isAddMemInstrWithRelocation(), llvm::MachineOperand::isReg(), llvm::X86II::LEGACY, llvm_unreachable, llvm::lower_bound(), MBB, MI, Opc, performCustomAdjustments(), llvm::Table, tryCompressMaskProducer(), llvm::MCInstrDesc::TSFlags, uint64_t, usesExtendedRegister(), llvm::X86II::VEX, and X86EnableAPXForRelocation.
Referenced by runOnMF().
Definition at line 184 of file X86CompressEVEX.cpp.
References llvm_unreachable, and Opc.
Referenced by tryCompressMaskProducer().
|
static |
Definition at line 250 of file X86CompressEVEX.cpp.
References DefMI, isAllOnesVector(), isZeroVector(), llvm::make_range(), MI, Reg, llvm::reverse(), and TRI.
Referenced by tryCompressMaskProducer().
| INITIALIZE_PASS | ( | CompressEVEXLegacy | , |
| COMP_EVEX_NAME | , | ||
| COMP_EVEX_DESC | , | ||
| false | , | ||
| false | ) |
Definition at line 725 of file X86CompressEVEX.cpp.
References COMP_EVEX_DESC, COMP_EVEX_NAME, and llvm::createX86CompressEVEXLegacyPass().
|
static |
Definition at line 239 of file X86CompressEVEX.cpp.
References MI.
Referenced by getSignMaskConstantDef().
Definition at line 266 of file X86CompressEVEX.cpp.
Referenced by tryCompressMaskProducer().
Definition at line 208 of file X86CompressEVEX.cpp.
References llvm_unreachable.
Referenced by tryCompressMaskProducer().
|
static |
Definition at line 227 of file X86CompressEVEX.cpp.
References MI.
Referenced by getSignMaskConstantDef().
|
static |
Definition at line 124 of file X86CompressEVEX.cpp.
References assert(), Imm, MI, and Opc.
Referenced by CompressEVEXImpl().
|
static |
Definition at line 693 of file X86CompressEVEX.cpp.
References assert(), Changed, CompressEVEXImpl(), llvm::dbgs(), llvm::MachineFunction::getSubtarget(), llvm::is_sorted(), LLVM_DEBUG, llvm::make_early_inc_range(), MBB, and MI.
Referenced by llvm::X86CompressEVEXPass::run().
|
static |
Definition at line 328 of file X86CompressEVEX.cpp.
References llvm::X86::AC_EVEX_2_VEX, llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), llvm::MachineInstr::getDebugLoc(), llvm::APInt::getLowBitsSet(), getMovMskBits(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::getRegState(), llvm::APInt::getSExtValue(), getSignMaskConstantDef(), isCompressibleBlendVUse(), llvm::MachineOperand::isDead(), llvm::isInt(), isKMovNarrowing(), llvm::MachineOperand::isRenamable(), llvm::Kill, llvm_unreachable, llvm::MachineBasicBlock::LQR_Dead, llvm::make_range(), MBB, MI, llvm::MachineInstr::modifiesRegister(), Opc, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MachineInstr::setAsmPrinterFlag(), llvm::MachineInstr::setDesc(), llvm::MachineOperand::setIsKill(), llvm::MachineOperand::setIsRenamable(), llvm::MachineOperand::setReg(), TII, TRI, llvm::MachineRegisterInfo::use_instructions(), UseMI, and usesExtendedRegister().
Referenced by CompressEVEXImpl().
|
static |
Definition at line 93 of file X86CompressEVEX.cpp.
References assert(), llvm::X86II::isApxExtendedReg(), llvm::X86II::isZMMReg(), MI, and Reg.
Referenced by CompressEVEXImpl(), and tryCompressMaskProducer().