|
LLVM 22.0.0git
|
This file implements the targeting of the InstructionSelector class for X86. More...
#include "MCTargetDesc/X86BaseInfo.h"#include "X86.h"#include "X86InstrBuilder.h"#include "X86InstrInfo.h"#include "X86RegisterBankInfo.h"#include "X86RegisterInfo.h"#include "X86Subtarget.h"#include "X86TargetMachine.h"#include "llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h"#include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"#include "llvm/CodeGen/GlobalISel/InstructionSelector.h"#include "llvm/CodeGen/GlobalISel/Utils.h"#include "llvm/CodeGen/MachineBasicBlock.h"#include "llvm/CodeGen/MachineConstantPool.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineMemOperand.h"#include "llvm/CodeGen/MachineOperand.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/RegisterBank.h"#include "llvm/CodeGen/TargetOpcodes.h"#include "llvm/CodeGen/TargetRegisterInfo.h"#include "llvm/CodeGenTypes/LowLevelType.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/InstrTypes.h"#include "llvm/IR/IntrinsicsX86.h"#include "llvm/Support/CodeGen.h"#include "llvm/Support/Debug.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/MathExtras.h"#include "llvm/Support/raw_ostream.h"#include <cassert>#include <cstdint>#include <tuple>#include "X86GenGlobalISel.inc"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "X86-isel" |
| #define | GET_GLOBALISEL_PREDICATE_BITSET |
| #define | GET_GLOBALISEL_PREDICATES_DECL |
| #define | GET_GLOBALISEL_TEMPORARIES_DECL |
| #define | GET_GLOBALISEL_IMPL |
| #define | GET_GLOBALISEL_PREDICATES_INIT |
| #define | GET_GLOBALISEL_TEMPORARIES_INIT |
Functions | |
| static const TargetRegisterClass * | getRegClassFromGRPhysReg (Register Reg) |
| static bool | X86SelectAddress (MachineInstr &I, const X86TargetMachine &TM, const MachineRegisterInfo &MRI, const X86Subtarget &STI, X86AddressMode &AM) |
| static unsigned | getLeaOP (LLT Ty, const X86Subtarget &STI) |
| static bool | canTurnIntoCOPY (const TargetRegisterClass *DstRC, const TargetRegisterClass *SrcRC) |
This file implements the targeting of the InstructionSelector class for X86.
Definition in file X86InstructionSelector.cpp.
| #define DEBUG_TYPE "X86-isel" |
Definition at line 50 of file X86InstructionSelector.cpp.
| #define GET_GLOBALISEL_IMPL |
Definition at line 155 of file X86InstructionSelector.cpp.
| #define GET_GLOBALISEL_PREDICATE_BITSET |
Definition at line 56 of file X86InstructionSelector.cpp.
| #define GET_GLOBALISEL_PREDICATES_DECL |
Definition at line 144 of file X86InstructionSelector.cpp.
| #define GET_GLOBALISEL_PREDICATES_INIT |
| #define GET_GLOBALISEL_TEMPORARIES_DECL |
Definition at line 148 of file X86InstructionSelector.cpp.
| #define GET_GLOBALISEL_TEMPORARIES_INIT |
|
static |
Definition at line 796 of file X86InstructionSelector.cpp.
|
static |
Definition at line 686 of file X86InstructionSelector.cpp.
References llvm::X86Subtarget::isTarget64BitILP32(), llvm_unreachable, and llvm::LLT::pointer().
|
static |
Definition at line 234 of file X86InstructionSelector.cpp.
References assert(), contains(), llvm_unreachable, and Reg.
|
static |
Definition at line 558 of file X86InstructionSelector.cpp.
References assert(), llvm::X86AddressMode::Base, llvm::X86AddressMode::BaseType, llvm::X86Subtarget::classifyGlobalReference(), llvm::X86Subtarget::classifyLocalReference(), llvm::X86AddressMode::CP, llvm::X86AddressMode::Disp, llvm::X86AddressMode::BaseUnion::FrameIndex, llvm::X86AddressMode::FrameIndexBase, llvm::X86InstrInfo::getGlobalBaseReg(), llvm::getIConstantVRegSExtVal(), llvm::X86Subtarget::getInstrInfo(), llvm::X86AddressMode::GV, llvm::X86AddressMode::GVOpFlags, I, llvm::X86AddressMode::IndexReg, llvm::isGlobalRelativeToPICBase(), llvm::isGlobalStubReference(), llvm::isInt(), llvm::X86Subtarget::isPICStyleRIPRel(), llvm::CodeModel::Large, llvm::X86II::MO_GOTOFF, MRI, llvm::X86AddressMode::BaseUnion::Reg, and llvm::CodeModel::Small.