Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
AMDGPUEmitPrintf.cpp File Reference

Go to the source code of this file.

Classes

struct  StringData

Macros

#define DEBUG_TYPE   "amdgpu-emit-printf"

Functions

static ValuefitArgInto64Bits (IRBuilder<> &Builder, Value *Arg)
static ValuecallPrintfBegin (IRBuilder<> &Builder, Value *Version)
static ValuecallAppendArgs (IRBuilder<> &Builder, Value *Desc, int NumArgs, Value *Arg0, Value *Arg1, Value *Arg2, Value *Arg3, Value *Arg4, Value *Arg5, Value *Arg6, bool IsLast)
static ValueappendArg (IRBuilder<> &Builder, Value *Desc, Value *Arg, bool IsLast)
static ValuegetStrlenWithNull (IRBuilder<> &Builder, Value *Str)
static ValuecallAppendStringN (IRBuilder<> &Builder, Value *Desc, Value *Str, Value *Length, bool isLast)
static ValueappendString (IRBuilder<> &Builder, Value *Desc, Value *Arg, bool IsLast)
static ValueprocessArg (IRBuilder<> &Builder, Value *Desc, Value *Arg, bool SpecIsCString, bool IsLast)
static void locateCStrings (SparseBitVector< 8 > &BV, StringRef Str)
static ValuecallBufferedPrintfStart (IRBuilder<> &Builder, ArrayRef< Value * > Args, Value *Fmt, bool isConstFmtStr, SparseBitVector< 8 > &SpecIsCString, SmallVectorImpl< StringData > &StringContents, Value *&ArgSize)
static void processConstantStringArg (StringData *SD, IRBuilder<> &Builder, SmallVectorImpl< Value * > &WhatToStore)
static ValueprocessNonStringArg (Value *Arg, IRBuilder<> &Builder)
static void callBufferedPrintfArgPush (IRBuilder<> &Builder, ArrayRef< Value * > Args, Value *PtrToStore, SparseBitVector< 8 > &SpecIsCString, SmallVectorImpl< StringData > &StringContents, bool IsConstFmtStr)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "amdgpu-emit-printf"

Definition at line 28 of file AMDGPUEmitPrintf.cpp.

Function Documentation

◆ appendArg()

Value * appendArg ( IRBuilder<> & Builder,
Value * Desc,
Value * Arg,
bool IsLast )
static

Definition at line 77 of file AMDGPUEmitPrintf.cpp.

References callAppendArgs(), and fitArgInto64Bits().

Referenced by processArg().

◆ appendString()

Value * appendString ( IRBuilder<> & Builder,
Value * Desc,
Value * Arg,
bool IsLast )
static

◆ callAppendArgs()

Value * callAppendArgs ( IRBuilder<> & Builder,
Value * Desc,
int NumArgs,
Value * Arg0,
Value * Arg1,
Value * Arg2,
Value * Arg3,
Value * Arg4,
Value * Arg5,
Value * Arg6,
bool IsLast )
static

Definition at line 61 of file AMDGPUEmitPrintf.cpp.

References llvm::Int32Ty.

Referenced by appendArg().

◆ callAppendStringN()

Value * callAppendStringN ( IRBuilder<> & Builder,
Value * Desc,
Value * Str,
Value * Length,
bool isLast )
static

Definition at line 154 of file AMDGPUEmitPrintf.cpp.

References llvm::Length.

Referenced by appendString().

◆ callBufferedPrintfArgPush()

◆ callBufferedPrintfStart()

◆ callPrintfBegin()

Value * callPrintfBegin ( IRBuilder<> & Builder,
Value * Version )
static

Definition at line 54 of file AMDGPUEmitPrintf.cpp.

Referenced by llvm::emitAMDGPUPrintfCall().

◆ fitArgInto64Bits()

Value * fitArgInto64Bits ( IRBuilder<> & Builder,
Value * Arg )
static

◆ getStrlenWithNull()

◆ locateCStrings()

void locateCStrings ( SparseBitVector< 8 > & BV,
StringRef Str )
static

◆ processArg()

Value * processArg ( IRBuilder<> & Builder,
Value * Desc,
Value * Arg,
bool SpecIsCString,
bool IsLast )
static

◆ processConstantStringArg()

◆ processNonStringArg()

Value * processNonStringArg ( Value * Arg,
IRBuilder<> & Builder )
static

Definition at line 353 of file AMDGPUEmitPrintf.cpp.

References DL, llvm::dyn_cast(), and llvm::Value::getType().

Referenced by callBufferedPrintfArgPush().