LLVM 19.0.0git
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
AsmWriter.cpp File Reference
#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/SetVector.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/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/Format.h"
#include "llvm/Support/FormattedStream.h"
#include "llvm/Support/SaveAndRestore.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#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...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Macros

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

Typedefs

using OrderMap = MapVector< const Value *, unsigned >
 
using UseListOrderMap = DenseMap< const Function *, MapVector< const Value *, std::vector< unsigned > > >
 

Enumerations

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

Functions

static const ValueskipMetadataWrapper (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< unsignedpredictValueUseListOrder (const Value *V, unsigned ID, const OrderMap &OM)
 
static UseListOrderMap predictUseListOrder (const Module *M)
 
static const ModulegetModuleFromVal (const Value *V)
 
static const ModulegetModuleFromDPI (const DbgMarker *Marker)
 
static const ModulegetModuleFromDPI (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 SlotTrackercreateSlotTracker (const Value *V)
 
static void WriteAsOperandInternal (raw_ostream &Out, const Value *V, AsmWriterContext &WriterCtx)
 
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 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 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 &)
 
static void writeDIStringType (raw_ostream &Out, const DIStringType *N, AsmWriterContext &WriterCtx)
 
static void writeDIDerivedType (raw_ostream &Out, const DIDerivedType *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 writeDIImportedEntity (raw_ostream &Out, const DIImportedEntity *N, AsmWriterContext &WriterCtx)
 
static void WriteMDNodeBodyInternal (raw_ostream &Out, const MDNode *Node, AsmWriterContext &Ctx)
 
static const chargetWholeProgDevirtResKindName (WholeProgramDevirtResolution::Kind K)
 
static const chargetWholeProgDevirtResByArgKindName (WholeProgramDevirtResolution::ByArg::Kind K)
 
static const chargetTTResKindName (TypeTestResolution::Kind K)
 
static const chargetSummaryKindName (GlobalValueSummary::SummaryKind SK)
 
static std::string getLinkageName (GlobalValue::LinkageTypes LT)
 
static std::string getLinkageNameWithSpace (GlobalValue::LinkageTypes LT)
 
static const chargetVisibilityName (GlobalValue::VisibilityTypes Vis)
 
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 isReferencingMDNode (const Instruction &I)
 
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)
 

Macro Definition Documentation

◆ HANDLE_MDNODE_LEAF

#define HANDLE_MDNODE_LEAF (   CLASS)
Value:
case Metadata::CLASS##Kind: \
write##CLASS(Out, cast<CLASS>(Node), Ctx); \
break;
Error write(MCStreamer &Out, ArrayRef< std::string > Inputs, OnCuIndexOverflow OverflowOptValue)
Definition: DWP.cpp:601

◆ ST_DEBUG

#define ST_DEBUG (   X)

Definition at line 956 of file AsmWriter.cpp.

Typedef Documentation

◆ OrderMap

using OrderMap = MapVector<const Value *, unsigned>

Definition at line 99 of file AsmWriter.cpp.

◆ UseListOrderMap

Definition at line 101 of file AsmWriter.cpp.

Enumeration Type Documentation

◆ PrefixType

enum PrefixType
Enumerator
GlobalPrefix 
ComdatPrefix 
LabelPrefix 
LocalPrefix 
NoPrefix 

Definition at line 369 of file AsmWriter.cpp.

Function Documentation

◆ createSlotTracker()

static SlotTracker * createSlotTracker ( const Value V)
static

Definition at line 927 of file AsmWriter.cpp.

References I.

Referenced by WriteAsOperandInternal().

◆ getLinkageName()

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

◆ getLinkageNameWithSpace()

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

Definition at line 3283 of file AsmWriter.cpp.

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

◆ getModuleFromDPI() [1/2]

static const Module * getModuleFromDPI ( const DbgMarker Marker)
static

◆ getModuleFromDPI() [2/2]

static const Module * getModuleFromDPI ( const DbgRecord DR)
static

Definition at line 295 of file AsmWriter.cpp.

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

◆ getModuleFromVal()

static const Module * getModuleFromVal ( const Value V)
static

◆ getSummaryKindName()

static const char * getSummaryKindName ( GlobalValueSummary::SummaryKind  SK)
static

◆ getTTResKindName()

static const char * getTTResKindName ( TypeTestResolution::Kind  K)
static

◆ getUnnamedAddrEncoding()

static StringRef getUnnamedAddrEncoding ( GlobalVariable::UnnamedAddr  UA)
static

Definition at line 3678 of file AsmWriter.cpp.

References llvm_unreachable.

◆ getVisibilityName()

static const char * getVisibilityName ( GlobalValue::VisibilityTypes  Vis)
static

◆ getWholeProgDevirtResByArgKindName()

static const char * getWholeProgDevirtResByArgKindName ( WholeProgramDevirtResolution::ByArg::Kind  K)
static

◆ getWholeProgDevirtResKindName()

static const char * getWholeProgDevirtResKindName ( WholeProgramDevirtResolution::Kind  K)
static

◆ isReferencingMDNode()

static bool isReferencingMDNode ( const Instruction I)
static

Definition at line 4899 of file AsmWriter.cpp.

References F, and I.

Referenced by llvm::Value::print().

◆ maybePrintCallAddrSpace()

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

◆ maybePrintComdat()

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

◆ orderModule()

static OrderMap orderModule ( const Module M)
static

Definition at line 129 of file AsmWriter.cpp.

References A, F, G, I, orderValue(), and skipMetadataWrapper().

Referenced by predictUseListOrder().

◆ orderValue()

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

Definition at line 113 of file AsmWriter.cpp.

References llvm::CallingConv::C, and orderValue().

Referenced by orderModule(), and orderValue().

◆ predictUseListOrder()

static UseListOrderMap predictUseListOrder ( const Module M)
static

Definition at line 238 of file AsmWriter.cpp.

References A, F, I, orderModule(), and predictValueUseListOrder().

◆ predictValueUseListOrder()

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

Definition at line 177 of file AsmWriter.cpp.

References I, if(), llvm::is_sorted(), List, and llvm::sort().

Referenced by predictUseListOrder().

◆ printAsOperandImpl()

static void printAsOperandImpl ( const Value V,
raw_ostream O,
bool  PrintType,
ModuleSlotTracker MST 
)
static

◆ PrintCallingConv()

static void PrintCallingConv ( unsigned  cc,
raw_ostream Out 
)
static

Definition at line 299 of file AsmWriter.cpp.

References llvm::CallingConv::AArch64_SME_ABI_Support_Routines_PreserveMost_From_X0, 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_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, llvm::CallingConv::CFGuard_Check, 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::SPIR_FUNC, llvm::CallingConv::SPIR_KERNEL, llvm::CallingConv::Swift, llvm::CallingConv::SwiftTail, llvm::CallingConv::Tail, 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()

static void PrintDLLStorageClass ( GlobalValue::DLLStorageClassTypes  SCT,
formatted_raw_ostream Out 
)
static

◆ PrintDSOLocation()

static void PrintDSOLocation ( const GlobalValue GV,
formatted_raw_ostream Out 
)
static

◆ PrintLLVMName() [1/2]

static 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 434 of file AsmWriter.cpp.

References GlobalPrefix, LocalPrefix, OS, and PrintLLVMName().

◆ PrintLLVMName() [2/2]

static 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 412 of file AsmWriter.cpp.

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

Referenced by maybePrintComdat(), llvm::Comdat::print(), PrintLLVMName(), and WriteAsOperandInternal().

◆ printMetadataIdentifier()

static void printMetadataIdentifier ( StringRef  Name,
formatted_raw_ostream Out 
)
static

Definition at line 3588 of file AsmWriter.cpp.

References llvm::CallingConv::C, and Name.

◆ printMetadataImpl()

static void printMetadataImpl ( raw_ostream ROS,
const Metadata MD,
ModuleSlotTracker MST,
const Module M,
bool  OnlyAsOperand,
bool  PrintAsTree = false 
)
static

◆ printMetadataImplRec()

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

Recursive version of printMetadataImpl.

Definition at line 5084 of file AsmWriter.cpp.

References N, OS, WriteAsOperandInternal(), and WriteMDNodeBodyInternal().

◆ PrintShuffleMask()

static void PrintShuffleMask ( raw_ostream Out,
Type Ty,
ArrayRef< int >  Mask 
)
static

Definition at line 439 of file AsmWriter.cpp.

References llvm::all_of(), and llvm::PoisonMaskElem.

Referenced by WriteConstantInternal().

◆ PrintThreadLocalModel()

static void PrintThreadLocalModel ( GlobalVariable::ThreadLocalMode  TLM,
formatted_raw_ostream Out 
)
static

Definition at line 3658 of file AsmWriter.cpp.

◆ PrintVisibility()

static void PrintVisibility ( GlobalValue::VisibilityTypes  Vis,
formatted_raw_ostream Out 
)
static

◆ printWithoutType()

static 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 5036 of file AsmWriter.cpp.

References Machine, and WriteAsOperandInternal().

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

◆ skipMetadataWrapper()

static 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 106 of file AsmWriter.cpp.

Referenced by orderModule().

◆ WriteAPFloatInternal()

static void WriteAPFloatInternal ( raw_ostream Out,
const APFloat APF 
)
static

◆ WriteAsOperandInternal() [1/2]

static void WriteAsOperandInternal ( raw_ostream Out,
const Metadata MD,
AsmWriterContext &  WriterCtx,
bool  FromValue = false 
)
static

◆ WriteAsOperandInternal() [2/2]

static void WriteAsOperandInternal ( raw_ostream Out,
const Value V,
AsmWriterContext &  WriterCtx 
)
static

◆ WriteConstantInternal()

static void WriteConstantInternal ( raw_ostream Out,
const Constant CV,
AsmWriterContext &  WriterCtx 
)
static

◆ writeDIArgList()

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

Definition at line 2450 of file AsmWriter.cpp.

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

Referenced by WriteAsOperandInternal().

◆ writeDIAssignID()

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

Definition at line 1980 of file AsmWriter.cpp.

References Printer.

◆ writeDIBasicType()

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

Definition at line 2090 of file AsmWriter.cpp.

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

◆ writeDICommonBlock()

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

Definition at line 2306 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDICompileUnit()

static void writeDICompileUnit ( raw_ostream Out,
const DICompileUnit N,
AsmWriterContext &  WriterCtx 
)
static

Definition at line 2215 of file AsmWriter.cpp.

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

◆ writeDICompositeType()

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

Definition at line 2156 of file AsmWriter.cpp.

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

◆ writeDIDerivedType()

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

Definition at line 2123 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIEnumerator()

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

Definition at line 2078 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIExpression()

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

◆ writeDIFile()

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

Definition at line 2200 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIGenericSubrange()

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

Definition at line 2027 of file AsmWriter.cpp.

References assert(), N, Printer, and llvm::DIExpression::SignedConstant.

◆ writeDIGlobalVariable()

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

Definition at line 2379 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIGlobalVariableExpression()

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

Definition at line 2465 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIImportedEntity()

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

Definition at line 2489 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILabel()

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

Definition at line 2414 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILexicalBlock()

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

Definition at line 2273 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILexicalBlockFile()

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

Definition at line 2284 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILocalVariable()

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

Definition at line 2398 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILocation()

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

Definition at line 1966 of file AsmWriter.cpp.

References DL, and Printer.

Referenced by WriteAsOperandInternal().

◆ writeDIMacro()

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

Definition at line 2318 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIMacroFile()

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

Definition at line 2329 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIModule()

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

Definition at line 2339 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDINamespace()

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

Definition at line 2296 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIObjCProperty()

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

Definition at line 2475 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIStringType()

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

Definition at line 2105 of file AsmWriter.cpp.

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

◆ writeDISubprogram()

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

Definition at line 2245 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDISubrange()

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

Definition at line 1986 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDISubroutineType()

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

Definition at line 2189 of file AsmWriter.cpp.

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

◆ writeDITemplateTypeParameter()

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

Definition at line 2354 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDITemplateValueParameter()

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

Definition at line 2365 of file AsmWriter.cpp.

References N, and Printer.

◆ writeGenericDINode()

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

Definition at line 1948 of file AsmWriter.cpp.

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

◆ WriteMDNodeBodyInternal()

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

Definition at line 2503 of file AsmWriter.cpp.

References llvm_unreachable.

Referenced by printMetadataImpl(), and printMetadataImplRec().

◆ writeMDTuple()

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

Definition at line 1727 of file AsmWriter.cpp.

References WriteAsOperandInternal().

◆ writeMetadataAsOperand()

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

Definition at line 1836 of file AsmWriter.cpp.

References WriteAsOperandInternal().

Referenced by writeGenericDINode().

◆ WriteOptimizationInfo()

static void WriteOptimizationInfo ( raw_ostream Out,
const User U 
)
static

Definition at line 1396 of file AsmWriter.cpp.

References GEP, and InRange().

Referenced by WriteConstantInternal().