LLVM 24.0.0git
AsmWriter.cpp File Reference
#include "IROptions.h"
#include "LLVMContextImpl.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/STLFunctionalExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/Argument.h"
#include "llvm/IR/AssemblyAnnotationWriter.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/Comdat.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DebugProgramInstruction.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalAlias.h"
#include "llvm/IR/GlobalIFunc.h"
#include "llvm/IR/GlobalObject.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/IRPrintingPasses.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/ModuleSlotTracker.h"
#include "llvm/IR/ModuleSummaryIndex.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/TypeFinder.h"
#include "llvm/IR/TypedPointerType.h"
#include "llvm/IR/Use.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/AtomicOrdering.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FormattedStream.h"
#include "llvm/Support/SaveAndRestore.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cctype>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <memory>
#include <optional>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
#include "llvm/IR/Metadata.def"

Go to the source code of this file.

Classes

class  llvm::SlotTracker
 This class provides computation of slot numbers for LLVM Assembly writing. More...

Macros

#define CC_VLS_CASE(ABI_VLEN)
#define ST_DEBUG(X)
#define HANDLE_MDNODE_LEAF(CLASS)

Typedefs

using OrderMap = MapVector<const Value *, unsigned>
using UseListOrderMap

Enumerations

enum  PrefixType {
  GlobalPrefix , ComdatPrefix , LabelPrefix , LocalPrefix ,
  NoPrefix
}

Functions

static const Value * skipMetadataWrapper (const Value *V)
 Look for a value that might be wrapped as metadata, e.g.
static void orderValue (const Value *V, OrderMap &OM)
static OrderMap orderModule (const Module *M)
static std::vector< unsigned > predictValueUseListOrder (const Value *V, unsigned ID, const OrderMap &OM)
static UseListOrderMap predictUseListOrder (const Module *M)
static const Module * getModuleFromVal (const Value *V)
static const Module * getModuleFromDPI (const DbgMarker *Marker)
static const Module * getModuleFromDPI (const DbgRecord *DR)
static void printCallingConv (unsigned cc, raw_ostream &Out)
static void printLLVMName (raw_ostream &OS, StringRef Name, PrefixType Prefix)
 Turn the specified name into an 'LLVM name', which is either prefixed with % (if the string only contains simple characters) or is surrounded with ""'s (if it has special chars in it).
static void printLLVMName (raw_ostream &OS, const Value *V)
 Turn the specified name into an 'LLVM name', which is either prefixed with % (if the string only contains simple characters) or is surrounded with ""'s (if it has special chars in it).
static void printShuffleMask (raw_ostream &Out, Type *Ty, ArrayRef< int > Mask)
static void printAddressSpace (const Module *M, unsigned AS, raw_ostream &OS, StringRef Prefix=" ", StringRef Suffix="", bool ForcePrint=false)
static SlotTracker * createSlotTracker (const Value *V)
static void writeAsOperandInternal (raw_ostream &Out, const Value *V, AsmWriterContext &WriterCtx, bool PrintType=false)
static void writeAsOperandInternal (raw_ostream &Out, const Metadata *MD, AsmWriterContext &WriterCtx, bool FromValue=false)
static void writeOptimizationInfo (raw_ostream &Out, const User *U)
static void WriteFullHexAPInt (raw_ostream &Out, const APInt &Val)
static void writeAPFloatInternal (raw_ostream &Out, const APFloat &APF)
static void writeConstantInternal (raw_ostream &Out, const Constant *CV, AsmWriterContext &WriterCtx)
static void writeMDTuple (raw_ostream &Out, const MDTuple *Node, AsmWriterContext &WriterCtx)
static void writeMetadataAsOperand (raw_ostream &Out, const Metadata *MD, AsmWriterContext &WriterCtx)
static void writeGenericDINode (raw_ostream &Out, const GenericDINode *N, AsmWriterContext &WriterCtx)
static void writeDILocation (raw_ostream &Out, const DILocation *DL, AsmWriterContext &WriterCtx)
static void writeDILayerLoc (raw_ostream &Out, const DILayerLoc *N, AsmWriterContext &WriterCtx)
static void writeDILayerLocList (raw_ostream &Out, const DILayerLocList *N, AsmWriterContext &WriterCtx)
static void writeDIAssignID (raw_ostream &Out, const DIAssignID *DL, AsmWriterContext &WriterCtx)
static void writeDISubrange (raw_ostream &Out, const DISubrange *N, AsmWriterContext &WriterCtx)
static void writeDIGenericSubrange (raw_ostream &Out, const DIGenericSubrange *N, AsmWriterContext &WriterCtx)
static void writeDIEnumerator (raw_ostream &Out, const DIEnumerator *N, AsmWriterContext &)
static void writeDIBasicType (raw_ostream &Out, const DIBasicType *N, AsmWriterContext &WriterCtx)
static void writeDIFixedPointType (raw_ostream &Out, const DIFixedPointType *N, AsmWriterContext &WriterCtx)
static void writeDIStringType (raw_ostream &Out, const DIStringType *N, AsmWriterContext &WriterCtx)
static void writeDIDerivedType (raw_ostream &Out, const DIDerivedType *N, AsmWriterContext &WriterCtx)
static void writeDISubrangeType (raw_ostream &Out, const DISubrangeType *N, AsmWriterContext &WriterCtx)
static void writeDICompositeType (raw_ostream &Out, const DICompositeType *N, AsmWriterContext &WriterCtx)
static void writeDISubroutineType (raw_ostream &Out, const DISubroutineType *N, AsmWriterContext &WriterCtx)
static void writeDIFile (raw_ostream &Out, const DIFile *N, AsmWriterContext &)
static void writeDICompileUnit (raw_ostream &Out, const DICompileUnit *N, AsmWriterContext &WriterCtx)
static void writeDISubprogram (raw_ostream &Out, const DISubprogram *N, AsmWriterContext &WriterCtx)
static void writeDILexicalBlock (raw_ostream &Out, const DILexicalBlock *N, AsmWriterContext &WriterCtx)
static void writeDILexicalBlockFile (raw_ostream &Out, const DILexicalBlockFile *N, AsmWriterContext &WriterCtx)
static void writeDINamespace (raw_ostream &Out, const DINamespace *N, AsmWriterContext &WriterCtx)
static void writeDICommonBlock (raw_ostream &Out, const DICommonBlock *N, AsmWriterContext &WriterCtx)
static void writeDIMacro (raw_ostream &Out, const DIMacro *N, AsmWriterContext &WriterCtx)
static void writeDIMacroFile (raw_ostream &Out, const DIMacroFile *N, AsmWriterContext &WriterCtx)
static void writeDIModule (raw_ostream &Out, const DIModule *N, AsmWriterContext &WriterCtx)
static void writeDITemplateTypeParameter (raw_ostream &Out, const DITemplateTypeParameter *N, AsmWriterContext &WriterCtx)
static void writeDITemplateValueParameter (raw_ostream &Out, const DITemplateValueParameter *N, AsmWriterContext &WriterCtx)
static void writeDIGlobalVariable (raw_ostream &Out, const DIGlobalVariable *N, AsmWriterContext &WriterCtx)
static void writeDILocalVariable (raw_ostream &Out, const DILocalVariable *N, AsmWriterContext &WriterCtx)
static void writeDILabel (raw_ostream &Out, const DILabel *N, AsmWriterContext &WriterCtx)
static void writeDIExpression (raw_ostream &Out, const DIExpression *N, AsmWriterContext &WriterCtx)
static void writeDIArgList (raw_ostream &Out, const DIArgList *N, AsmWriterContext &WriterCtx, bool FromValue=false)
static void writeDIGlobalVariableExpression (raw_ostream &Out, const DIGlobalVariableExpression *N, AsmWriterContext &WriterCtx)
static void writeDIObjCProperty (raw_ostream &Out, const DIObjCProperty *N, AsmWriterContext &WriterCtx)
static void writeDIProperty (raw_ostream &Out, const DIProperty *N, AsmWriterContext &WriterCtx)
static void writeDIImportedEntity (raw_ostream &Out, const DIImportedEntity *N, AsmWriterContext &WriterCtx)
static void writeMDNodeBodyInternal (raw_ostream &Out, const MDNode *Node, AsmWriterContext &Ctx)
static const IROptions & getOptions (const Module *M)
static const char * getWholeProgDevirtResKindName (WholeProgramDevirtResolution::Kind K)
static const char * getWholeProgDevirtResByArgKindName (WholeProgramDevirtResolution::ByArg::Kind K)
static const char * getTTResKindName (TypeTestResolution::Kind K)
static const char * getSummaryKindName (GlobalValueSummary::SummaryKind SK)
static std::string getLinkageName (GlobalValue::LinkageTypes LT)
static std::string getLinkageNameWithSpace (GlobalValue::LinkageTypes LT)
static const char * getVisibilityName (GlobalValue::VisibilityTypes Vis)
static const char * getImportTypeName (GlobalValueSummary::ImportKind IK)
static void printMetadataIdentifier (StringRef Name, formatted_raw_ostream &Out)
static void printVisibility (GlobalValue::VisibilityTypes Vis, formatted_raw_ostream &Out)
static void printDSOLocation (const GlobalValue &GV, formatted_raw_ostream &Out)
static void printDLLStorageClass (GlobalValue::DLLStorageClassTypes SCT, formatted_raw_ostream &Out)
static void printThreadLocalModel (GlobalVariable::ThreadLocalMode TLM, formatted_raw_ostream &Out)
static StringRef getUnnamedAddrEncoding (GlobalVariable::UnnamedAddr UA)
static void maybePrintComdat (formatted_raw_ostream &Out, const GlobalObject &GO)
static void maybePrintCallAddrSpace (const Value *Operand, const Instruction *I, raw_ostream &Out)
static bool printWithoutType (const Value &V, raw_ostream &O, SlotTracker *Machine, const Module *M)
 Print without a type, skipping the TypePrinting object.
static void printAsOperandImpl (const Value &V, raw_ostream &O, bool PrintType, ModuleSlotTracker &MST)
static void printMetadataImplRec (raw_ostream &ROS, const Metadata &MD, AsmWriterContext &WriterCtx)
 Recursive version of printMetadataImpl.
static void printMetadataImpl (raw_ostream &ROS, const Metadata &MD, ModuleSlotTracker &MST, const Module *M, bool OnlyAsOperand, bool PrintAsTree=false)

Variables

constexpr IROptions DefaultOptions

Macro Definition Documentation

◆ CC_VLS_CASE

#define CC_VLS_CASE ( ABI_VLEN)
Value:
case CallingConv::RISCV_VLSCall_##ABI_VLEN: \
Out << "riscv_vls_cc(" #ABI_VLEN ")"; \
break;

Referenced by printCallingConv().

◆ HANDLE_MDNODE_LEAF

#define HANDLE_MDNODE_LEAF ( CLASS)
Value:
case Metadata::CLASS##Kind: \
write##CLASS(Out, cast<CLASS>(Node), Ctx); \
break;
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.
Definition Casting.h:559
LLVM_ABI Error write(DWPWriter &Out, ArrayRef< std::string > Inputs, OnCuIndexOverflow OverflowOptValue, Dwarf64StrOffsetsPromotion StrOffsetsOptValue, raw_pwrite_stream *OS=nullptr)
Definition DWP.cpp:746

◆ ST_DEBUG

#define ST_DEBUG ( X)

Definition at line 1009 of file AsmWriter.cpp.

Referenced by llvm::SlotTracker::purgeFunction().

Typedef Documentation

◆ OrderMap

using OrderMap = MapVector<const Value *, unsigned>

Definition at line 100 of file AsmWriter.cpp.

◆ UseListOrderMap

Enumeration Type Documentation

◆ PrefixType

enum PrefixType
Enumerator
GlobalPrefix 
ComdatPrefix 
LabelPrefix 
LocalPrefix 
NoPrefix 

Definition at line 436 of file AsmWriter.cpp.

Function Documentation

◆ createSlotTracker()

SlotTracker * createSlotTracker ( const Value * V)
static

Definition at line 980 of file AsmWriter.cpp.

References llvm::dyn_cast(), and I.

Referenced by writeAsOperandInternal().

◆ getImportTypeName()

◆ getLinkageName()

◆ getLinkageNameWithSpace()

std::string getLinkageNameWithSpace ( GlobalValue::LinkageTypes LT)
static

Definition at line 3595 of file AsmWriter.cpp.

References llvm::GlobalValue::ExternalLinkage, and getLinkageName().

◆ getModuleFromDPI() [1/2]

◆ getModuleFromDPI() [2/2]

const Module * getModuleFromDPI ( const DbgRecord * DR)
static

Definition at line 324 of file AsmWriter.cpp.

References llvm::DbgRecord::getMarker(), and getModuleFromDPI().

◆ getModuleFromVal()

◆ getOptions()

◆ getSummaryKindName()

◆ getTTResKindName()

◆ getUnnamedAddrEncoding()

StringRef getUnnamedAddrEncoding ( GlobalVariable::UnnamedAddr UA)
static

◆ getVisibilityName()

◆ getWholeProgDevirtResByArgKindName()

◆ getWholeProgDevirtResKindName()

◆ maybePrintCallAddrSpace()

void maybePrintCallAddrSpace ( const Value * Operand,
const Instruction * I,
raw_ostream & Out )
static

◆ maybePrintComdat()

void maybePrintComdat ( formatted_raw_ostream & Out,
const GlobalObject & GO )
static

◆ orderModule()

OrderMap orderModule ( const Module * M)
static

◆ orderValue()

void orderValue ( const Value * V,
OrderMap & OM )
static

Definition at line 114 of file AsmWriter.cpp.

References C(), llvm::dyn_cast(), llvm::isa(), and orderValue().

Referenced by orderModule(), and orderValue().

◆ predictUseListOrder()

UseListOrderMap predictUseListOrder ( const Module * M)
static

Definition at line 267 of file AsmWriter.cpp.

References A(), llvm::dyn_cast(), F, I, orderModule(), and predictValueUseListOrder().

◆ predictValueUseListOrder()

std::vector< unsigned > predictValueUseListOrder ( const Value * V,
unsigned ID,
const OrderMap & OM )
static

◆ printAddressSpace()

void printAddressSpace ( const Module * M,
unsigned AS,
raw_ostream & OS,
StringRef Prefix = " ",
StringRef Suffix = "",
bool ForcePrint = false )
static

Definition at line 621 of file AsmWriter.cpp.

References llvm::StringRef::empty(), and llvm::getIROptions().

Referenced by maybePrintCallAddrSpace().

◆ printAsOperandImpl()

◆ printCallingConv()

void printCallingConv ( unsigned cc,
raw_ostream & Out )
static

Definition at line 328 of file AsmWriter.cpp.

References llvm::CallingConv::AArch64_SME_ABI_Support_Routines_PreserveMost_From_X0, llvm::CallingConv::AArch64_SME_ABI_Support_Routines_PreserveMost_From_X1, llvm::CallingConv::AArch64_SME_ABI_Support_Routines_PreserveMost_From_X2, llvm::CallingConv::AArch64_SVE_VectorCall, llvm::CallingConv::AArch64_VectorCall, llvm::CallingConv::AMDGPU_CS, llvm::CallingConv::AMDGPU_CS_Chain, llvm::CallingConv::AMDGPU_CS_ChainPreserve, llvm::CallingConv::AMDGPU_ES, llvm::CallingConv::AMDGPU_Gfx, llvm::CallingConv::AMDGPU_Gfx_WholeWave, llvm::CallingConv::AMDGPU_GS, llvm::CallingConv::AMDGPU_HS, llvm::CallingConv::AMDGPU_KERNEL, llvm::CallingConv::AMDGPU_LS, llvm::CallingConv::AMDGPU_PS, llvm::CallingConv::AMDGPU_VS, llvm::CallingConv::AnyReg, llvm::CallingConv::ARM_AAPCS, llvm::CallingConv::ARM_AAPCS_VFP, llvm::CallingConv::ARM_APCS, llvm::CallingConv::AVR_INTR, llvm::CallingConv::AVR_SIGNAL, CC_VLS_CASE, llvm::CallingConv::CFGuard_Check, llvm::CallingConv::CHERIoT_CompartmentCall, llvm::CallingConv::CHERIoT_CompartmentCallee, llvm::CallingConv::CHERIoT_LibraryCall, llvm::CallingConv::Cold, llvm::CallingConv::CXX_FAST_TLS, llvm::CallingConv::DUMMY_HHVM, llvm::CallingConv::DUMMY_HHVM_C, llvm::CallingConv::Fast, llvm::CallingConv::GHC, llvm::CallingConv::GRAAL, llvm::CallingConv::Intel_OCL_BI, llvm::CallingConv::M68k_RTD, llvm::CallingConv::MSP430_INTR, llvm::CallingConv::PreserveAll, llvm::CallingConv::PreserveMost, llvm::CallingConv::PreserveNone, llvm::CallingConv::PTX_Device, llvm::CallingConv::PTX_Kernel, llvm::CallingConv::RISCV_VectorCall, llvm::CallingConv::SPIR_FUNC, llvm::CallingConv::SPIR_KERNEL, llvm::CallingConv::Swift, llvm::CallingConv::SwiftTail, llvm::CallingConv::Tail, llvm::CallingConv::WASM_EmscriptenInvoke, llvm::CallingConv::Win64, llvm::CallingConv::X86_64_SysV, llvm::CallingConv::X86_FastCall, llvm::CallingConv::X86_INTR, llvm::CallingConv::X86_RegCall, llvm::CallingConv::X86_StdCall, llvm::CallingConv::X86_ThisCall, and llvm::CallingConv::X86_VectorCall.

◆ printDLLStorageClass()

◆ printDSOLocation()

void printDSOLocation ( const GlobalValue & GV,
formatted_raw_ostream & Out )
static

◆ printLLVMName() [1/2]

void printLLVMName ( raw_ostream & OS,
const Value * V )
static

Turn the specified name into an 'LLVM name', which is either prefixed with % (if the string only contains simple characters) or is surrounded with ""'s (if it has special chars in it).

Print it out.

Definition at line 500 of file AsmWriter.cpp.

References GlobalPrefix, llvm::isa(), LocalPrefix, and printLLVMName().

◆ printLLVMName() [2/2]

void printLLVMName ( raw_ostream & OS,
StringRef Name,
PrefixType Prefix )
static

Turn the specified name into an 'LLVM name', which is either prefixed with % (if the string only contains simple characters) or is surrounded with ""'s (if it has special chars in it).

Print it out.

Definition at line 478 of file AsmWriter.cpp.

References ComdatPrefix, GlobalPrefix, LabelPrefix, LocalPrefix, NoPrefix, and llvm::printLLVMNameWithoutPrefix().

Referenced by maybePrintComdat(), llvm::Comdat::print(), llvm::printBasicBlock(), printLLVMName(), and writeAsOperandInternal().

◆ printMetadataIdentifier()

void printMetadataIdentifier ( StringRef Name,
formatted_raw_ostream & Out )
static

Definition at line 3912 of file AsmWriter.cpp.

References C(), and llvm::hexdigit().

◆ printMetadataImpl()

◆ printMetadataImplRec()

void printMetadataImplRec ( raw_ostream & ROS,
const Metadata & MD,
AsmWriterContext & WriterCtx )
static

Recursive version of printMetadataImpl.

Definition at line 5459 of file AsmWriter.cpp.

References llvm::dyn_cast(), llvm::isa(), N, writeAsOperandInternal(), and writeMDNodeBodyInternal().

◆ printShuffleMask()

void printShuffleMask ( raw_ostream & Out,
Type * Ty,
ArrayRef< int > Mask )
static

◆ printThreadLocalModel()

◆ printVisibility()

◆ printWithoutType()

bool printWithoutType ( const Value & V,
raw_ostream & O,
SlotTracker * Machine,
const Module * M )
static

Print without a type, skipping the TypePrinting object.

Returns
true iff printing was successful.

Definition at line 5417 of file AsmWriter.cpp.

References llvm::isa(), Machine, and writeAsOperandInternal().

Referenced by llvm::Value::printAsOperand(), and llvm::Value::printAsOperand().

◆ skipMetadataWrapper()

const Value * skipMetadataWrapper ( const Value * V)
static

Look for a value that might be wrapped as metadata, e.g.

a value in a metadata operand. Returns the input value as-is if it is not wrapped.

Definition at line 107 of file AsmWriter.cpp.

References llvm::dyn_cast().

Referenced by orderModule().

◆ writeAPFloatInternal()

◆ writeAsOperandInternal() [1/2]

◆ writeAsOperandInternal() [2/2]

◆ writeConstantInternal()

◆ writeDIArgList()

void writeDIArgList ( raw_ostream & Out,
const DIArgList * N,
AsmWriterContext & WriterCtx,
bool FromValue = false )
static

Definition at line 2732 of file AsmWriter.cpp.

References assert(), N, Printer, and writeAsOperandInternal().

Referenced by writeAsOperandInternal().

◆ writeDIAssignID()

void writeDIAssignID ( raw_ostream & Out,
const DIAssignID * DL,
AsmWriterContext & WriterCtx )
static

Definition at line 2197 of file AsmWriter.cpp.

References DL, and Printer.

◆ writeDIBasicType()

void writeDIBasicType ( raw_ostream & Out,
const DIBasicType * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2287 of file AsmWriter.cpp.

References llvm::dwarf::AttributeEncodingString(), N, and Printer.

◆ writeDICommonBlock()

void writeDICommonBlock ( raw_ostream & Out,
const DICommonBlock * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2583 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDICompileUnit()

◆ writeDICompositeType()

void writeDICompositeType ( raw_ostream & Out,
const DICompositeType * N,
AsmWriterContext & WriterCtx )
static

◆ writeDIDerivedType()

void writeDIDerivedType ( raw_ostream & Out,
const DIDerivedType * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2352 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIEnumerator()

void writeDIEnumerator ( raw_ostream & Out,
const DIEnumerator * N,
AsmWriterContext &  )
static

Definition at line 2275 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIExpression()

void writeDIExpression ( raw_ostream & Out,
const DIExpression * N,
AsmWriterContext & WriterCtx )
static

◆ writeDIFile()

void writeDIFile ( raw_ostream & Out,
const DIFile * N,
AsmWriterContext &  )
static

Definition at line 2458 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIFixedPointType()

void writeDIFixedPointType ( raw_ostream & Out,
const DIFixedPointType * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2307 of file AsmWriter.cpp.

References llvm::dwarf::AttributeEncodingString(), N, and Printer.

◆ writeDIGenericSubrange()

void writeDIGenericSubrange ( raw_ostream & Out,
const DIGenericSubrange * N,
AsmWriterContext & WriterCtx )
static

◆ writeDIGlobalVariable()

void writeDIGlobalVariable ( raw_ostream & Out,
const DIGlobalVariable * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2656 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIGlobalVariableExpression()

void writeDIGlobalVariableExpression ( raw_ostream & Out,
const DIGlobalVariableExpression * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2747 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIImportedEntity()

void writeDIImportedEntity ( raw_ostream & Out,
const DIImportedEntity * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2783 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILabel()

void writeDILabel ( raw_ostream & Out,
const DILabel * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2691 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILayerLoc()

void writeDILayerLoc ( raw_ostream & Out,
const DILayerLoc * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2175 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILayerLocList()

void writeDILayerLocList ( raw_ostream & Out,
const DILayerLocList * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2186 of file AsmWriter.cpp.

References N, and writeMetadataAsOperand().

◆ writeDILexicalBlock()

void writeDILexicalBlock ( raw_ostream & Out,
const DILexicalBlock * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2550 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILexicalBlockFile()

void writeDILexicalBlockFile ( raw_ostream & Out,
const DILexicalBlockFile * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2561 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILocalVariable()

void writeDILocalVariable ( raw_ostream & Out,
const DILocalVariable * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2675 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILocation()

void writeDILocation ( raw_ostream & Out,
const DILocation * DL,
AsmWriterContext & WriterCtx )
static

Definition at line 2158 of file AsmWriter.cpp.

References DL, and Printer.

Referenced by writeAsOperandInternal().

◆ writeDIMacro()

void writeDIMacro ( raw_ostream & Out,
const DIMacro * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2595 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIMacroFile()

void writeDIMacroFile ( raw_ostream & Out,
const DIMacroFile * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2606 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIModule()

void writeDIModule ( raw_ostream & Out,
const DIModule * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2616 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDINamespace()

void writeDINamespace ( raw_ostream & Out,
const DINamespace * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2573 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIObjCProperty()

void writeDIObjCProperty ( raw_ostream & Out,
const DIObjCProperty * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2757 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIProperty()

void writeDIProperty ( raw_ostream & Out,
const DIProperty * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2771 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIStringType()

void writeDIStringType ( raw_ostream & Out,
const DIStringType * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2333 of file AsmWriter.cpp.

References llvm::dwarf::AttributeEncodingString(), N, and Printer.

◆ writeDISubprogram()

void writeDISubprogram ( raw_ostream & Out,
const DISubprogram * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2521 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDISubrange()

void writeDISubrange ( raw_ostream & Out,
const DISubrange * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2203 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDISubrangeType()

void writeDISubrangeType ( raw_ostream & Out,
const DISubrangeType * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2385 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDISubroutineType()

void writeDISubroutineType ( raw_ostream & Out,
const DISubroutineType * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2447 of file AsmWriter.cpp.

References llvm::dwarf::ConventionString(), N, and Printer.

◆ writeDITemplateTypeParameter()

void writeDITemplateTypeParameter ( raw_ostream & Out,
const DITemplateTypeParameter * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2631 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDITemplateValueParameter()

void writeDITemplateValueParameter ( raw_ostream & Out,
const DITemplateValueParameter * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2642 of file AsmWriter.cpp.

References N, and Printer.

◆ WriteFullHexAPInt()

void WriteFullHexAPInt ( raw_ostream & Out,
const APInt & Val )
static

Definition at line 1584 of file AsmWriter.cpp.

References llvm::APInt::getBitWidth(), and llvm::APInt::toStringUnsigned().

Referenced by writeAPFloatInternal().

◆ writeGenericDINode()

void writeGenericDINode ( raw_ostream & Out,
const GenericDINode * N,
AsmWriterContext & WriterCtx )
static

Definition at line 2140 of file AsmWriter.cpp.

References I, N, Printer, and writeMetadataAsOperand().

◆ writeMDNodeBodyInternal()

void writeMDNodeBodyInternal ( raw_ostream & Out,
const MDNode * Node,
AsmWriterContext & Ctx )
static

Definition at line 2797 of file AsmWriter.cpp.

References llvm_unreachable.

Referenced by printMetadataImpl(), and printMetadataImplRec().

◆ writeMDTuple()

void writeMDTuple ( raw_ostream & Out,
const MDTuple * Node,
AsmWriterContext & WriterCtx )
static

Definition at line 1914 of file AsmWriter.cpp.

References llvm::dyn_cast(), and writeAsOperandInternal().

◆ writeMetadataAsOperand()

void writeMetadataAsOperand ( raw_ostream & Out,
const Metadata * MD,
AsmWriterContext & WriterCtx )
static

Definition at line 2008 of file AsmWriter.cpp.

References writeAsOperandInternal().

Referenced by writeDILayerLocList(), and writeGenericDINode().

◆ writeOptimizationInfo()

void writeOptimizationInfo ( raw_ostream & Out,
const User * U )
static

Definition at line 1541 of file AsmWriter.cpp.

References llvm::dyn_cast(), GEP, and InRange().

Referenced by writeConstantInternal().

Variable Documentation

◆ DefaultOptions

IROptions DefaultOptions
constexpr

Definition at line 3072 of file AsmWriter.cpp.

Referenced by getOptions().