|
LLVM 23.0.0git
|
The AMDGPUAsmPrinter is used to print both assembly string and also binary code. More...
#include "AMDGPUAsmPrinter.h"#include "AMDGPU.h"#include "AMDGPUHSAMetadataStreamer.h"#include "AMDGPUMCResourceInfo.h"#include "AMDGPUResourceUsageAnalysis.h"#include "AMDGPUTargetMachine.h"#include "GCNSubtarget.h"#include "MCTargetDesc/AMDGPUInstPrinter.h"#include "MCTargetDesc/AMDGPUMCExpr.h"#include "MCTargetDesc/AMDGPUMCKernelDescriptor.h"#include "MCTargetDesc/AMDGPUTargetStreamer.h"#include "R600AsmPrinter.h"#include "SIMachineFunctionInfo.h"#include "TargetInfo/AMDGPUTargetInfo.h"#include "Utils/AMDGPUBaseInfo.h"#include "Utils/AMDKernelCodeTUtils.h"#include "Utils/SIDefinesUtils.h"#include "llvm/ADT/StringSet.h"#include "llvm/Analysis/OptimizationRemarkEmitter.h"#include "llvm/BinaryFormat/ELF.h"#include "llvm/CodeGen/AsmPrinterAnalysis.h"#include "llvm/CodeGen/AsmPrinterHandler.h"#include "llvm/CodeGen/MachineFrameInfo.h"#include "llvm/CodeGen/MachineModuleInfo.h"#include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"#include "llvm/IR/DiagnosticInfo.h"#include "llvm/MC/MCAssembler.h"#include "llvm/MC/MCContext.h"#include "llvm/MC/MCSectionELF.h"#include "llvm/MC/MCStreamer.h"#include "llvm/MC/MCValue.h"#include "llvm/MC/TargetRegistry.h"#include "llvm/Support/AMDHSAKernelDescriptor.h"#include "llvm/Support/Compiler.h"#include "llvm/Target/TargetLoweringObjectFile.h"#include "llvm/Target/TargetMachine.h"#include "llvm/TargetParser/AMDGPUTargetParser.h"Go to the source code of this file.
The AMDGPUAsmPrinter is used to print both assembly string and also binary code.
When passed an MCAsmStreamer it prints assembly and when passed an MCObjectStreamer it outputs binary code.
Definition in file AMDGPUAsmPrinter.cpp.
|
static |
Definition at line 596 of file AMDGPUAsmPrinter.cpp.
References llvm::divideCeil(), and DL.
Referenced by computeTypeId().
Definition at line 1238 of file AMDGPUAsmPrinter.cpp.
References llvm::MCConstantExpr::create(), llvm::AMDGPUMCExpr::createAlignTo(), llvm::MCBinaryExpr::createDiv(), llvm::AMDGPUMCExpr::createMax(), and llvm::MCBinaryExpr::createSub().
|
static |
Definition at line 619 of file AMDGPUAsmPrinter.cpp.
References appendTypeEncoding(), and DL.
|
static |
Definition at line 87 of file AMDGPUAsmPrinter.cpp.
Referenced by LLVMInitializeAMDGPUAsmPrinter().
| const AMDGPUMCExpr * createOccupancy | ( | unsigned | InitOcc, |
| const MCExpr * | NumSGPRs, | ||
| const MCExpr * | NumVGPRs, | ||
| unsigned | DynamicVGPRBlockSize, | ||
| const GCNSubtarget & | STM, | ||
| MCContext & | Ctx ) |
Mimics GCNSubtarget::computeOccupancy for MCExpr.
Remove dependency on GCNSubtarget and depend only only the necessary values for said occupancy computation. Should match computeOccupancy implementation without passing STM on.
Definition at line 442 of file AMDGPUAsmPrinter.cpp.
References llvm::AMDGPUMCExpr::AGVK_Occupancy, llvm::AMDGPUMCExpr::create(), llvm::MCConstantExpr::create(), llvm::AMDGPU::IsaInfo::getMaxWavesPerEU(), llvm::AMDGPU::IsaInfo::getSGPRAllocGranule(), llvm::AMDGPU::IsaInfo::getTotalNumSGPRs(), llvm::AMDGPU::IsaInfo::getTotalNumVGPRs(), llvm::AMDGPU::IsaInfo::getVGPRAllocGranule(), llvm::AMDGPU::IsaInfo::isSGPROccupancyLimited(), and llvm::AMDGPU::IsaInfo::TRAP_NUM_SGPRS.
|
static |
Definition at line 1672 of file AMDGPUAsmPrinter.cpp.
References llvm::SIProgramInfo::EXCPEnable, llvm::SIProgramInfo::FwdProgress, llvm::AMDGPU::getLdsDwGranularity(), llvm::SIProgramInfo::IEEEMode, llvm::AMDGPU::isCompute(), llvm::SIProgramInfo::LdsSize, llvm::SIProgramInfo::MemOrdered, llvm::AMDGPUPALMetadata::setComputeRegisters(), llvm::AMDGPUPALMetadata::setHwStage(), llvm::SIProgramInfo::TrapHandlerEnable, llvm::AMDGPUPALMetadata::updateHwStageMaximum(), and llvm::SIProgramInfo::WgpMode.
|
static |
Definition at line 1826 of file AMDGPUAsmPrinter.cpp.
References AMD_ELEMENT_16_BYTES, AMD_ELEMENT_4_BYTES, AMD_ELEMENT_8_BYTES, llvm_unreachable, and Size.
|
static |
Definition at line 79 of file AMDGPUAsmPrinter.cpp.
References FP_DENORM_MODE_DP, FP_DENORM_MODE_SP, FP_ROUND_MODE_DP, FP_ROUND_MODE_SP, FP_ROUND_ROUND_TO_NEAREST, and Mode.
|
static |
Definition at line 1552 of file AMDGPUAsmPrinter.cpp.
References llvm::CallingConv::AMDGPU_CS, llvm::CallingConv::AMDGPU_ES, llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::CallingConv::AMDGPU_LS, llvm::CallingConv::AMDGPU_PS, llvm::CallingConv::AMDGPU_VS, R_00B028_SPI_SHADER_PGM_RSRC1_PS, R_00B128_SPI_SHADER_PGM_RSRC1_VS, R_00B228_SPI_SHADER_PGM_RSRC1_GS, R_00B328_SPI_SHADER_PGM_RSRC1_ES, R_00B428_SPI_SHADER_PGM_RSRC1_HS, R_00B528_SPI_SHADER_PGM_RSRC1_LS, and R_00B848_COMPUTE_PGM_RSRC1.
| LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAMDGPUAsmPrinter | ( | ) |
Definition at line 93 of file AMDGPUAsmPrinter.cpp.
References createAMDGPUAsmPrinterPass(), llvm::createR600AsmPrinterPass(), llvm::getTheGCNLegacyTarget(), llvm::getTheGCNTarget(), llvm::getTheR600Target(), and llvm::TargetRegistry::RegisterAsmPrinter().
|
static |
Set bits in a kernel descriptor MCExpr field: return ((Dst & ~Mask) | (Value << Shift))
Definition at line 250 of file AMDGPUAsmPrinter.cpp.
References llvm::MCConstantExpr::create(), llvm::MCBinaryExpr::createAnd(), llvm::MCUnaryExpr::createNot(), llvm::MCBinaryExpr::createOr(), and llvm::MCBinaryExpr::createShl().
Referenced by llvm::AMDGPUAsmPrinter::endFunction(), llvm::APInt::setBitsFrom(), llvm::APInt::setBitsWithWrap(), llvm::APInt::setHighBits(), and llvm::APInt::setLowBits().