|
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 576 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(), hasShorterEVEXViaCDisp8(), 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 204 of file X86CompressEVEX.cpp.
References llvm_unreachable, and Opc.
Referenced by tryCompressMaskProducer().
|
static |
Definition at line 270 of file X86CompressEVEX.cpp.
References DefMI, isAllOnesVector(), isZeroVector(), llvm::make_range(), MI, Reg, llvm::reverse(), and TRI.
Referenced by tryCompressMaskProducer().
|
static |
Definition at line 128 of file X86CompressEVEX.cpp.
References llvm::X86::AddrDisp, llvm::X86::getFirstAddrOperandIdx(), llvm::MachineOperand::getImm(), llvm::X86II::isDispOrCDisp8(), llvm::MachineOperand::isImm(), llvm::isInt(), and MI.
Referenced by CompressEVEXImpl().
| INITIALIZE_PASS | ( | CompressEVEXLegacy | , |
| COMP_EVEX_NAME | , | ||
| COMP_EVEX_DESC | , | ||
| false | , | ||
| false | ) |
Definition at line 775 of file X86CompressEVEX.cpp.
References COMP_EVEX_DESC, COMP_EVEX_NAME, and llvm::createX86CompressEVEXLegacyPass().
|
static |
Definition at line 259 of file X86CompressEVEX.cpp.
References MI.
Referenced by getSignMaskConstantDef().
Definition at line 286 of file X86CompressEVEX.cpp.
Referenced by tryCompressMaskProducer().
Definition at line 337 of file X86CompressEVEX.cpp.
Referenced by tryCompressMaskProducer().
Definition at line 228 of file X86CompressEVEX.cpp.
References llvm_unreachable.
Referenced by tryCompressMaskProducer().
|
static |
Definition at line 247 of file X86CompressEVEX.cpp.
References MI.
Referenced by getSignMaskConstantDef().
|
static |
Definition at line 144 of file X86CompressEVEX.cpp.
References assert(), Imm, MI, and Opc.
Referenced by CompressEVEXImpl().
|
static |
Definition at line 743 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 363 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(), isCompressibleMaskedBlendUse(), 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().