LLVM 20.0.0git
Macros | Functions
X86InstructionSelector.cpp File Reference

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/AtomicOrdering.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 TargetRegisterClassgetRegClassFromGRPhysReg (Register Reg)
 
static void X86SelectAddress (const MachineInstr &I, const MachineRegisterInfo &MRI, X86AddressMode &AM)
 
static unsigned getLeaOP (LLT Ty, const X86Subtarget &STI)
 
static bool canTurnIntoCOPY (const TargetRegisterClass *DstRC, const TargetRegisterClass *SrcRC)
 

Detailed Description

This file implements the targeting of the InstructionSelector class for X86.

Todo:
This should be generated by TableGen.

Definition in file X86InstructionSelector.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "X86-isel"

Definition at line 51 of file X86InstructionSelector.cpp.

◆ GET_GLOBALISEL_IMPL

#define GET_GLOBALISEL_IMPL

Definition at line 151 of file X86InstructionSelector.cpp.

◆ GET_GLOBALISEL_PREDICATE_BITSET

#define GET_GLOBALISEL_PREDICATE_BITSET

Definition at line 57 of file X86InstructionSelector.cpp.

◆ GET_GLOBALISEL_PREDICATES_DECL

#define GET_GLOBALISEL_PREDICATES_DECL

Definition at line 140 of file X86InstructionSelector.cpp.

◆ GET_GLOBALISEL_PREDICATES_INIT

#define GET_GLOBALISEL_PREDICATES_INIT

◆ GET_GLOBALISEL_TEMPORARIES_DECL

#define GET_GLOBALISEL_TEMPORARIES_DECL

Definition at line 144 of file X86InstructionSelector.cpp.

◆ GET_GLOBALISEL_TEMPORARIES_INIT

#define GET_GLOBALISEL_TEMPORARIES_INIT

Function Documentation

◆ canTurnIntoCOPY()

static bool canTurnIntoCOPY ( const TargetRegisterClass DstRC,
const TargetRegisterClass SrcRC 
)
static

Definition at line 767 of file X86InstructionSelector.cpp.

◆ getLeaOP()

static unsigned getLeaOP ( LLT  Ty,
const X86Subtarget STI 
)
static

◆ getRegClassFromGRPhysReg()

static const TargetRegisterClass * getRegClassFromGRPhysReg ( Register  Reg)
static

Definition at line 230 of file X86InstructionSelector.cpp.

References assert(), contains(), and llvm_unreachable.

◆ X86SelectAddress()

static void X86SelectAddress ( const MachineInstr I,
const MachineRegisterInfo MRI,
X86AddressMode AM 
)
static