LLVM 20.0.0git
Functions | Variables
X86TargetMachine.cpp File Reference
#include "X86TargetMachine.h"
#include "MCTargetDesc/X86MCTargetDesc.h"
#include "TargetInfo/X86TargetInfo.h"
#include "X86.h"
#include "X86MachineFunctionInfo.h"
#include "X86MacroFusion.h"
#include "X86Subtarget.h"
#include "X86TargetObjectFile.h"
#include "X86TargetTransformInfo.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/CodeGen/ExecutionDomainFix.h"
#include "llvm/CodeGen/GlobalISel/CSEInfo.h"
#include "llvm/CodeGen/GlobalISel/CallLowering.h"
#include "llvm/CodeGen/GlobalISel/IRTranslator.h"
#include "llvm/CodeGen/GlobalISel/InstructionSelect.h"
#include "llvm/CodeGen/GlobalISel/InstructionSelector.h"
#include "llvm/CodeGen/GlobalISel/Legalizer.h"
#include "llvm/CodeGen/GlobalISel/RegBankSelect.h"
#include "llvm/CodeGen/MIRParser/MIParser.h"
#include "llvm/CodeGen/MIRYamlMapping.h"
#include "llvm/CodeGen/MachineScheduler.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Function.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Pass.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Target/TargetLoweringObjectFile.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/TargetParser/Triple.h"
#include "llvm/Transforms/CFGuard.h"
#include <memory>
#include <optional>
#include <string>

Go to the source code of this file.

Functions

LLVM_C_ABI void LLVMInitializeX86Target ()
 
static std::unique_ptr< TargetLoweringObjectFilecreateTLOF (const Triple &TT)
 
static std::string computeDataLayout (const Triple &TT)
 
static Reloc::Model getEffectiveRelocModel (const Triple &TT, bool JIT, std::optional< Reloc::Model > RM)
 
static CodeModel::Model getEffectiveX86CodeModel (const Triple &TT, std::optional< CodeModel::Model > CM, bool JIT)
 
 INITIALIZE_PASS_BEGIN (X86ExecutionDomainFix, "x86-execution-domain-fix", "X86 Execution Domain Fix", false, false) INITIALIZE_PASS_END(X86ExecutionDomainFix
 
static bool onlyAllocateTileRegisters (const TargetRegisterInfo &TRI, const MachineRegisterInfo &MRI, const Register Reg)
 

Variables

static cl::opt< boolEnableMachineCombinerPass ("x86-machine-combiner", cl::desc("Enable the machine combiner pass"), cl::init(true), cl::Hidden)
 
static cl::opt< boolEnableTileRAPass ("x86-tile-ra", cl::desc("Enable the tile register allocation pass"), cl::init(true), cl::Hidden)
 
x86 execution domain fix
 
x86 execution domain X86 Execution Domain Fix
 
x86 execution domain X86 Execution Domain false
 

Function Documentation

◆ computeDataLayout()

static std::string computeDataLayout ( const Triple TT)
static

Definition at line 125 of file X86TargetMachine.cpp.

References llvm::DataLayout::getManglingComponent().

◆ createTLOF()

static std::unique_ptr< TargetLoweringObjectFile > createTLOF ( const Triple TT)
static

Definition at line 110 of file X86TargetMachine.cpp.

References llvm::Triple::x86_64.

◆ getEffectiveRelocModel()

static Reloc::Model getEffectiveRelocModel ( const Triple TT,
bool  JIT,
std::optional< Reloc::Model RM 
)
static

◆ getEffectiveX86CodeModel()

static CodeModel::Model getEffectiveX86CodeModel ( const Triple TT,
std::optional< CodeModel::Model CM,
bool  JIT 
)
static

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( X86ExecutionDomainFix  ,
"x86-execution-domain-fix"  ,
"X86 Execution Domain Fix"  ,
false  ,
false   
)

◆ LLVMInitializeX86Target()

LLVM_C_ABI void LLVMInitializeX86Target ( )

Definition at line 66 of file X86TargetMachine.cpp.

References llvm::PassRegistry::getPassRegistry(), llvm::getTheX86_32Target(), llvm::getTheX86_64Target(), llvm::initializeCompressEVEXPassPass(), llvm::initializeFixupBWInstPassPass(), llvm::initializeFixupLEAPassPass(), llvm::initializeFPSPass(), llvm::initializeGlobalISel(), llvm::initializeKCFIPass(), llvm::initializePseudoProbeInserterPass(), llvm::initializeWinEHStatePassPass(), llvm::initializeX86ArgumentStackSlotPassPass(), llvm::initializeX86AvoidSFBPassPass(), llvm::initializeX86AvoidTrailingCallPassPass(), llvm::initializeX86CallFrameOptimizationPass(), llvm::initializeX86CmovConverterPassPass(), llvm::initializeX86DAGToDAGISelLegacyPass(), llvm::initializeX86DomainReassignmentPass(), llvm::initializeX86DynAllocaExpanderPass(), llvm::initializeX86ExecutionDomainFixPass(), llvm::initializeX86ExpandPseudoPass(), llvm::initializeX86FastPreTileConfigPass(), llvm::initializeX86FastTileConfigPass(), llvm::initializeX86FixupInstTuningPassPass(), llvm::initializeX86FixupSetCCPassPass(), llvm::initializeX86FixupVectorConstantsPassPass(), llvm::initializeX86FlagsCopyLoweringPassPass(), llvm::initializeX86LoadValueInjectionLoadHardeningPassPass(), llvm::initializeX86LoadValueInjectionRetHardeningPassPass(), llvm::initializeX86LowerAMXIntrinsicsLegacyPassPass(), llvm::initializeX86LowerAMXTypeLegacyPassPass(), llvm::initializeX86LowerTileCopyPass(), llvm::initializeX86OptimizeLEAPassPass(), llvm::initializeX86PartialReductionPass(), llvm::initializeX86PreTileConfigPass(), llvm::initializeX86ReturnThunksPass(), llvm::initializeX86SpeculativeExecutionSideEffectSuppressionPass(), llvm::initializeX86SpeculativeLoadHardeningPassPass(), llvm::initializeX86TileConfigPass(), X, and Y.

◆ onlyAllocateTileRegisters()

static bool onlyAllocateTileRegisters ( const TargetRegisterInfo TRI,
const MachineRegisterInfo MRI,
const Register  Reg 
)
static

Definition at line 680 of file X86TargetMachine.cpp.

References MRI, and TRI.

Variable Documentation

◆ EnableMachineCombinerPass

cl::opt< bool > EnableMachineCombinerPass("x86-machine-combiner", cl::desc("Enable the machine combiner pass"), cl::init(true), cl::Hidden) ( "x86-machine-combiner"  ,
cl::desc("Enable the machine combiner pass")  ,
cl::init(true ,
cl::Hidden   
)
static

◆ EnableTileRAPass

cl::opt< bool > EnableTileRAPass("x86-tile-ra", cl::desc("Enable the tile register allocation pass"), cl::init(true), cl::Hidden) ( "x86-tile-ra"  ,
cl::desc("Enable the tile register allocation pass")  ,
cl::init(true ,
cl::Hidden   
)
static

◆ false

x86 execution domain X86 Execution Domain false

Definition at line 452 of file X86TargetMachine.cpp.

◆ fix

x86 execution domain fix

Definition at line 451 of file X86TargetMachine.cpp.

◆ Fix

x86 execution domain X86 Execution Domain Fix

Definition at line 452 of file X86TargetMachine.cpp.