LLVM 22.0.0git
AMDGPUMCCodeEmitter.cpp File Reference

The AMDGPU code emitter produces machine code that can be executed directly on the GPU device. More...

#include "MCTargetDesc/AMDGPUFixupKinds.h"
#include "MCTargetDesc/AMDGPUMCExpr.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "SIDefines.h"
#include "Utils/AMDGPUBaseInfo.h"
#include "llvm/ADT/APInt.h"
#include "llvm/MC/MCCodeEmitter.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/EndianStream.h"
#include <optional>
#include "AMDGPUGenMCCodeEmitter.inc"

Go to the source code of this file.

Functions

static void addFixup (SmallVectorImpl< MCFixup > &Fixups, uint32_t Offset, const MCExpr *Value, uint16_t Kind, bool PCRel=false)
template<typename IntTy>
static uint32_t getIntInlineImmEncoding (IntTy Imm)
static uint32_t getLit16Encoding (uint16_t Val, const MCSubtargetInfo &STI)
static uint32_t getLitBF16Encoding (uint16_t Val)
static uint32_t getLit32Encoding (uint32_t Val, const MCSubtargetInfo &STI)
static uint32_t getLit16IntEncoding (uint32_t Val, const MCSubtargetInfo &STI)
static uint32_t getLit64Encoding (const MCInstrDesc &Desc, uint64_t Val, const MCSubtargetInfo &STI, bool IsFP)
static bool isVCMPX64 (const MCInstrDesc &Desc)
static bool needsPCRel (const MCExpr *Expr)

Detailed Description

The AMDGPU code emitter produces machine code that can be executed directly on the GPU device.

Definition in file AMDGPUMCCodeEmitter.cpp.

Function Documentation

◆ addFixup()

void addFixup ( SmallVectorImpl< MCFixup > & Fixups,
uint32_t Offset,
const MCExpr * Value,
uint16_t Kind,
bool PCRel = false )
static

Definition at line 107 of file AMDGPUMCCodeEmitter.cpp.

References llvm::MCFixup::create(), and llvm::Offset.

◆ getIntInlineImmEncoding()

template<typename IntTy>
uint32_t getIntInlineImmEncoding ( IntTy Imm)
static

◆ getLit16Encoding()

uint32_t getLit16Encoding ( uint16_t Val,
const MCSubtargetInfo & STI )
static

◆ getLit16IntEncoding()

uint32_t getLit16IntEncoding ( uint32_t Val,
const MCSubtargetInfo & STI )
static

Definition at line 218 of file AMDGPUMCCodeEmitter.cpp.

References getLit32Encoding().

◆ getLit32Encoding()

uint32_t getLit32Encoding ( uint32_t Val,
const MCSubtargetInfo & STI )
static

◆ getLit64Encoding()

◆ getLitBF16Encoding()

uint32_t getLitBF16Encoding ( uint16_t Val)
static

Definition at line 161 of file AMDGPUMCCodeEmitter.cpp.

References getIntInlineImmEncoding().

◆ isVCMPX64()

bool isVCMPX64 ( const MCInstrDesc & Desc)
static

Definition at line 368 of file AMDGPUMCCodeEmitter.cpp.

References llvm::SIInstrFlags::VOP3.

◆ needsPCRel()