Streaming object file generation interface.
Synopsis
Declared in <llvm/MC/MCObjectStreamer.h>
class MCObjectStreamer
: public MCStreamer
Description
This class provides an implementation of the MCStreamer interface which is suitable for use with the assembler backend. Specific object file formats are expected to subclass this interface to implement directives specific to that file format or custom semantics expected by the object writer implementation.
Base Classes
Name |
Description |
Streaming machine code generation interface. |
Member Functions
Name |
Description |
|
Deleted copy assignment. |
|
Add a textual comment. |
Retrieve the current frame info if one is available and it is not yet closed. Otherwise, issue an error and return null. |
|
|
Emit a blank line to a .s file to pretty it up. |
|
Add explicit comment T. T is required to be a valid comment in the output and does not need to be escaped. |
Add a fixup to the current fragment. |
|
Allocate a new fragment storage block with room for |
|
|
|
|
Start emitting COFF symbol definition |
|
Update streamer state for a new active section. |
|
Emit the absolute difference between two symbols if possible. |
|
Emit the absolute difference between two symbols encoded as ULEB128. |
|
Emit a |
|
Add |
|
Emit an assignment of |
|
Functionally identical to EmitBytes. When emitting textual assembly, this method uses .byte directives instead of .ascii or .asciz for readability. |
|
Emit/Specify Mach‐O build version command. |
|
Enable aligned instruction bundling with the given bundle size. |
|
The following instructions are a bundle‐locked group. |
|
Ends a bundle‐locked group. |
|
Emit the bytes in |
|
Emit a .cfi_adjust_cfa_offset directive. |
|
Emit a .cfi_b_key_frame directive. |
|
Emit a .cfi_def_cfa directive. |
|
Emit a .cfi_def_cfa_offset directive. |
|
Emit a .cfi_def_cfa_register directive. |
Emit a .cfi_endproc directive. |
|
|
Emit a .cfi_escape directive with raw DWARF CFI bytes. |
|
Emit a .cfi_gnu_args_size directive. |
|
Emit a .cfi_llvm_def_aspace_cfa directive. |
|
Emit a .cfi_llvm_register_pair directive. |
|
|
|
Emit a .cfi_llvm_vector_offset directive. |
|
Emit a .cfi_llvm_vector_register_mask directive. |
|
Emit a .cfi_llvm_vector_registers directive. |
|
Emit a real CFI label into the object when emitting object files. |
|
Emit a .cfi_label directive. |
|
Emit a .cfi_lsda directive. |
|
Emit a .cfi_mte_tagged_frame directive. |
|
Emit a .cfi_negate_ra_state directive. |
|
Emit a .cfi_negate_ra_state_with_pc directive. |
|
Emit a .cfi_offset directive. |
|
Emit a .cfi_personality directive. |
|
Emit a .cfi_register directive. |
|
Emit a .cfi_rel_offset directive. |
|
Emit a .cfi_remember_state directive. |
|
Emit a .cfi_restore directive. |
|
Emit a .cfi_restore_state directive. |
|
Emit a .cfi_return_column directive. |
|
Emit a .cfi_same_value directive. |
|
Select which CFI sections to emit. |
|
Emit a .cfi_signal_frame directive. |
Emit a .cfi_startproc directive. |
|
|
Emit a .cfi_undefined directive. |
|
Emit a .cfi_val_offset directive. |
|
Emit a .cfi_window_save directive. |
|
Emit a call‐graph profile edge. |
|
Emits a COFF image relative relocation. |
|
Emit a COFF .safeseh directive for |
|
Emits the physical number of the section containing the given symbol as assigned during object writing (i.e., this is not a runtime relocation). |
|
Emits the offset of the symbol from the beginning of the section during object writing (i.e., this is not a runtime relocation). |
|
Emits a COFF section relative relocation. |
|
Emits a COFF section index. |
|
Emits the symbol table index of a Symbol into the current section. |
|
Emit the storage class of the symbol. |
|
Emit the type of the symbol. |
|
|
|
This implements the CodeView '.cv_fpo_data' assembler directive. |
|
Emit a CodeView |
|
Emit a CodeView |
|
Associate a filename and checksum with a CodeView logical file number. |
|
Introduces a function id for use with .cv_loc. |
|
Emit a CodeView |
|
Introduces an inline call site id for use with .cv_loc. Includes extra information for inline line table generation. |
|
|
|
Emit a CodeView |
|
Emit a CodeView |
|
|
|
Emit a common symbol. |
|
Emit an assignment of |
|
Emit a Mach‐O build‐version command for the Darwin target variant. |
|
Note in the output the specified region |
Emit a DWARF frame address advance from |
|
|
Emit a raw DWARF line‐address advance from |
|
Specify the "root" file of the compilation, using the ".file 0" extension. |
Associate a filename with a specified logical file number. This implements the DWARF2 '.file 4 "foo.c"' assembler directive. |
|
|
Emit the debug line end entry for |
|
Emit the debug line start label. |
|
Emit a DWARF |
|
This is same as emitDwarfLocDirective, except it has the capability to add inlined_at information. |
|
This implements the '.loc_label Name' directive. |
|
|
|
Copy EH‐related symbol attributes from |
|
Emit an ELF .size directive. |
|
Emit an ELF .symver directive. |
|
Emit added explicit comments. |
|
|
|
|
Emit collected EH, debug, and/or SFrame unwind information. |
|
|
Emit a .gnu_attribute directive. |
|
Emit the "identifiers" directive. This implements the '.ident "version foo"' assembler directive. |
Emit an instruction to a special fragment, because this instruction can change its size during relaxation. |
|
|
Emit the given instruction into the current section. |
Emit |
|
Emit |
|
Emit |
|
Emit |
|
|
|
|
Special case of EmitValue that avoids the client having to pass in a MCExpr for constant integers & prints in Hex format for certain modes. |
|
Emit a constant integer in hex, padded to |
|
Emit a Linker Optimization Hint (LOH) directive. |
|
Emit |
|
Emit |
Emit a temporary label and record it in the DWARF line table. |
|
|
Emit the given list |
|
Emit a local common (.lcomm) symbol. |
|
Emit |
Emits pending conditional assignments that depend on |
|
|
|
|
Emit the a pseudo probe into the current section. |
|
Print |
Dump |
|
|
Record a relocation described by the |
Emit an SFrame function‐offset delta from |
|
Special case of EmitSLEB128Value that avoids the client having to pass in a MCExpr for constant integers. |
|
|
Emit |
|
Emit a .subsection_via_symbols directive. |
|
Add the given |
|
Set the |
Special case of EmitValue that avoids the client having to pass in a MCExpr for MCSymbols. |
|
|
Emit a |
|
Emit a thread local bss (.tbss) symbol. |
|
Emit the target triple into the output. |
Special case of EmitULEB128Value that avoids the client having to pass in a MCExpr for constant integers. |
|
|
Emit |
Emit the expression |
|
|
Emit the expression |
|
Emit fill bytes until alignment |
|
Emit copies of |
Emit version directives appropriate for |
|
|
Specify the Mach‐O minimum deployment target version. |
|
|
|
Emit a .seh_stackalloc directive. |
|
Emit a .seh_startepilogue directive. |
|
Emit a .seh_endepilogue directive. |
|
Emit a .seh_endproc directive ending a Windows CFI procedure. |
|
Emit a .seh_endprologue directive. |
|
Emit a .seh_endfunclet directive for .xdata sizing. |
|
Emit a .seh_push2regs directive. |
|
Emit a .seh_pushframe directive. |
|
Emit a .seh_pushreg directive. |
|
Emit a .seh_savereg directive. |
|
Emit a .seh_savexmm directive. |
|
Emit a .seh_setframe directive. |
|
Emit a .seh_splitchained directive. |
|
Emit a .seh_proc directive starting a Windows CFI procedure. |
|
Emit a .seh_unwindv2start directive. |
|
Emit a .seh_unwindversion directive. |
|
Emit a .seh_handler directive. |
|
Emit a .seh_handlerdata directive. |
|
Emit a C_INFO symbol with XCOFF embedded metadata to the .info section. |
|
Emit an XCOFF .except directive which adds information about a trap instruction to the object file exception section |
|
Emits an lcomm directive with XCOFF csect information. |
|
Emit a XCOFF .ref directive which creates R_REF type entry in the relocation table for one or more symbols. |
|
Emit a XCOFF .rename directive which creates a synonym for an illegal or undesirable name. |
|
Emit a symbol's linkage and visibility with a linkage directive for XCOFF. |
|
Emit the zerofill section and an optional symbol. |
Emit NumBytes worth of zeros. This function properly handles data in virtual sections. |
|
|
Marks the end of the symbol definition. |
End |
|
Ensure the current fragment has at least |
|
Finish emission of machine code. |
|
|
Perform object‐streamer finalization before finishing the object. |
Generate compact‐unwind encodings for collected DWARF frames. |
|
Return whether the assembler may insert padding automatically. |
|
Return the assembler owned by this streamer. |
|
|
Return a pointer to the assembler owned by this streamer. |
Return the .pdata section associated with |
|
Get the .xdata section used for the given section. |
|
|
Return a raw_ostream that comments can be written to. Unlike AddComment, you are required to terminate comments with if you use this method. |
Return the MC context this streamer is bound to. |
|
Return a pointer to the end of the fixed‐size contents of the current fragment. |
|
Return the fixed size of the current data fragment. |
|
Return the fragment currently being appended to. |
|
Return the current section that the streamer is emitting code to. |
|
Return only the current section, ignoring the subsection index. |
|
Return the Windows EH epilog currently being processed, or null. |
|
Return the default unwind version for new WinCFI frames. |
|
Return the collected DWARF CFI frames. |
|
|
Return the DWARF line‐table symbol for compile unit |
Return the installed LFI rewriter, or null if none. |
|
|
Returns the mnemonic for |
Return the number of DWARF CFI frames collected so far. |
|
Return the number of Windows EH frames collected so far. |
|
Return the previous section that the streamer is emitting code to. |
|
Return the parser's current token location, if available. |
|
Return the attached target streamer, or null if none. |
|
Return whether assembler info may be used during parsing. |
|
Return the collected Windows EH frames. |
|
|
Return true if this asm streamer supports emitting unformatted text to the .s file with EmitRawText. |
Return true if a DWARF CFI frame has been started but not ended. |
|
|
Create the default sections and set the initial one. |
Return true if a |
|
Return true if SEH directives are being recorded for an epilog. |
|
|
Object streamers require the integrated assembler. |
Return true if this streamer emits an object file. |
|
|
Return true if this streamer supports verbose assembly and if it is enabled. |
Returns true if a WinCFI prolog has been completed (.seh_endprologue) in the current frame. |
|
|
Return true if |
Emit a special value of 0xffffffff if producing 64‐bit debugging info. |
|
Add a new fragment to the current section without a variable‐size tail. |
|
Add a new special fragment of type |
|
|
Restore the current and previous section from the section stack. Calls changeSection as needed. |
Save the current and previous section on the section stack. |
|
|
state management |
Set whether the assembler may insert padding automatically. |
|
Set the default unwind version for new WinCFI frames. |
|
Take ownership of LFI rewriter |
|
Point at the parser's current token location for diagnostics. |
|
Take ownership of target streamer |
|
Set whether assembler info may be used during parsing. |
|
|
|
Similar to switchSection, but does not print the section directive. |
|
|
Associate a filename with a specified logical file number. |
Visit symbols referenced by |
|
|
Register |
Using Declarations
Name |
Description |
Bring MCStreamer::emitFill overloads into scope. |
Protected Member Functions
Name |
Description |
|
Construct an object streamer. |
|
Destroy the object streamer. |
Append fragment |
|
|
This is called by popSection and switchSection, if the current section changes. |
Returns true if the .cv_loc directive is in the right section. |
|
|
Target‐specific implementation of .cfi_endproc. |
|
Target‐specific implementation of .cfi_startproc. |
|
Implementation of emitRawText, used by assembly streamers. |
|
|
Return the current Windows EH frame, or null if none is active. |
Protected Data Members
Name |
Description |
True while inside a |
|
Fragment currently being appended to. |
|
Symbol of the current epilog for which we are processing SEH directives. |
|
DWARF CFI frames collected while streaming. |
|
True if this streamer is emitting an object file rather than assembly. |
|
Optional LFI rewriter applied to emitted instructions. |
Non-Member Functions
Name |
Description |
Emit LFI bundle‐alignment mode for the current target, if required. |
|
Emit the ELF note section that identifies an LFI object file. |
|
Initialize |
|
Emit the common part of the DWARF 5 range/locations list tables header. |
Derived Classes
Name |
Description |
Streaming DXContainer object file generation interface. |
|
Streaming ELF object file generation interface. |
|
Streaming GOFF object file generation interface. |
|
Streaming SPIR‐V object file generation interface. |
|
Streaming Wasm object file generation interface. |
|
Streaming Windows COFF object file generation interface. |
|
Streaming XCOFF object file generation interface. |
Created with MrDocs