|
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 |
| #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 70 of file X86CompressEVEX.cpp.
|
static |
Definition at line 574 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(), and llvm::X86II::VEX.
Referenced by runOnMF().
Definition at line 202 of file X86CompressEVEX.cpp.
References llvm_unreachable, and Opc.
Referenced by tryCompressMaskProducer().
|
static |
Definition at line 268 of file X86CompressEVEX.cpp.
References DefMI, isAllOnesVector(), isZeroVector(), llvm::make_range(), MI, Reg, llvm::reverse(), and TRI.
Referenced by tryCompressMaskProducer().
|
static |
Definition at line 126 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 773 of file X86CompressEVEX.cpp.
References COMP_EVEX_DESC, COMP_EVEX_NAME, and llvm::createX86CompressEVEXLegacyPass().
|
static |
Definition at line 257 of file X86CompressEVEX.cpp.
References MI.
Referenced by getSignMaskConstantDef().
Definition at line 284 of file X86CompressEVEX.cpp.
Referenced by tryCompressMaskProducer().
Definition at line 335 of file X86CompressEVEX.cpp.
Referenced by tryCompressMaskProducer().
Definition at line 226 of file X86CompressEVEX.cpp.
References llvm_unreachable.
Referenced by tryCompressMaskProducer().
|
static |
Definition at line 245 of file X86CompressEVEX.cpp.
References MI.
Referenced by getSignMaskConstantDef().
|
static |
Definition at line 142 of file X86CompressEVEX.cpp.
References assert(), Imm, MI, and Opc.
Referenced by CompressEVEXImpl().
|
static |
Definition at line 741 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 361 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 91 of file X86CompressEVEX.cpp.
References assert(), llvm::X86II::isApxExtendedReg(), llvm::X86II::isZMMReg(), MI, and Reg.
Referenced by CompressEVEXImpl(), and tryCompressMaskProducer().