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

LLVM 22.0.0git
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 <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 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 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 &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 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 const chargetImportTypeName (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 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)

Variables

static cl::opt< boolPrintInstAddrs ("print-inst-addrs", cl::Hidden, cl::desc("Print addresses of instructions when dumping"))
static cl::opt< boolPrintInstDebugLocs ("print-inst-debug-locs", cl::Hidden, cl::desc("Pretty print debug locations of instructions when dumping"))
static cl::opt< boolPrintProfData ("print-prof-data", cl::Hidden, cl::desc("Pretty print perf data (branch weights, etc) when dumping"))

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;
LLVM_ABI Error write(MCStreamer &Out, ArrayRef< std::string > Inputs, OnCuIndexOverflow OverflowOptValue)
Definition DWP.cpp:622
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.
Definition Casting.h:565

◆ ST_DEBUG

#define ST_DEBUG ( X)

Definition at line 1025 of file AsmWriter.cpp.

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

Typedef Documentation

◆ OrderMap

using OrderMap = MapVector<const Value *, unsigned>

Definition at line 112 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 996 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 3487 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 336 of file AsmWriter.cpp.

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

◆ getModuleFromVal()

◆ getSummaryKindName()

◆ getTTResKindName()

◆ getUnnamedAddrEncoding()

StringRef getUnnamedAddrEncoding ( GlobalVariable::UnnamedAddr UA)
static

◆ getVisibilityName()

◆ getWholeProgDevirtResByArgKindName()

◆ getWholeProgDevirtResKindName()

◆ isReferencingMDNode()

bool isReferencingMDNode ( const Instruction & I)
static

Definition at line 5153 of file AsmWriter.cpp.

References llvm::dyn_cast(), llvm::dyn_cast_or_null(), F, I, and llvm::isa().

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

◆ maybePrintCallAddrSpace()

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

◆ maybePrintComdat()

◆ orderModule()

OrderMap orderModule ( const Module * M)
static

◆ orderValue()

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

Definition at line 126 of file AsmWriter.cpp.

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

Referenced by orderModule(), and orderValue().

◆ predictUseListOrder()

UseListOrderMap predictUseListOrder ( const Module * M)
static

Definition at line 279 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

◆ printAsOperandImpl()

◆ PrintCallingConv()

void PrintCallingConv ( unsigned cc,
raw_ostream & Out )
static

Definition at line 340 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::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::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(), PrintLLVMName(), and WriteAsOperandInternal().

◆ printMetadataIdentifier()

void printMetadataIdentifier ( StringRef Name,
formatted_raw_ostream & Out )
static

Definition at line 3804 of file AsmWriter.cpp.

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

◆ printMetadataImpl()

◆ printMetadataImplRec()

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

Recursive version of printMetadataImpl.

Definition at line 5338 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

Definition at line 505 of file AsmWriter.cpp.

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

Referenced by WriteConstantInternal().

◆ 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 5290 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 119 of file AsmWriter.cpp.

References llvm::dyn_cast().

Referenced by orderModule().

◆ WriteAPFloatInternal()

◆ WriteAsOperandInternal() [1/2]

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

◆ WriteAsOperandInternal() [2/2]

◆ WriteConstantInternal()

◆ writeDIArgList()

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

Definition at line 2654 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 2144 of file AsmWriter.cpp.

References DL, and Printer.

◆ writeDIBasicType()

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

Definition at line 2234 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 2505 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDICompileUnit()

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

Definition at line 2413 of file AsmWriter.cpp.

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

◆ 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 2291 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIEnumerator()

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

Definition at line 2222 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 2397 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIFixedPointType()

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

Definition at line 2250 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 2578 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIGlobalVariableExpression()

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

Definition at line 2669 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIImportedEntity()

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

Definition at line 2693 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILabel()

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

Definition at line 2613 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILexicalBlock()

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

Definition at line 2472 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILexicalBlockFile()

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

Definition at line 2483 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILocalVariable()

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

Definition at line 2597 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDILocation()

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

Definition at line 2128 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 2517 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIMacroFile()

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

Definition at line 2528 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIModule()

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

Definition at line 2538 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDINamespace()

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

Definition at line 2495 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIObjCProperty()

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

Definition at line 2679 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDIStringType()

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

Definition at line 2273 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 2443 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDISubrange()

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

Definition at line 2150 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDISubrangeType()

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

Definition at line 2324 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDISubroutineType()

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

Definition at line 2386 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 2553 of file AsmWriter.cpp.

References N, and Printer.

◆ writeDITemplateValueParameter()

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

Definition at line 2564 of file AsmWriter.cpp.

References N, and Printer.

◆ writeGenericDINode()

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

Definition at line 2110 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 2707 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 1866 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 1978 of file AsmWriter.cpp.

References WriteAsOperandInternal().

Referenced by writeGenericDINode().

◆ WriteOptimizationInfo()

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

Definition at line 1469 of file AsmWriter.cpp.

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

Referenced by WriteConstantInternal().

Variable Documentation

◆ PrintInstAddrs

cl::opt< bool > PrintInstAddrs("print-inst-addrs", cl::Hidden, cl::desc("Print addresses of instructions when dumping")) ( "print-inst-addrs" ,
cl::Hidden ,
cl::desc("Print addresses of instructions when dumping")  )
static

◆ PrintInstDebugLocs

cl::opt< bool > PrintInstDebugLocs("print-inst-debug-locs", cl::Hidden, cl::desc("Pretty print debug locations of instructions when dumping")) ( "print-inst-debug-locs" ,
cl::Hidden ,
cl::desc("Pretty print debug locations of instructions when dumping")  )
static

◆ PrintProfData

cl::opt< bool > PrintProfData("print-prof-data", cl::Hidden, cl::desc("Pretty print perf data (branch weights, etc) when dumping")) ( "print-prof-data" ,
cl::Hidden ,
cl::desc("Pretty print perf data (branch weights, etc) when dumping")  )
static