globalDef : String -> {default emptySymbolInfo _ : SymbolInfo} -> {default Nothing _ : Maybe ThreadLocality} -> {default Nothing _ : Maybe AddressInfo} -> {default Nothing _ : Maybe AddressSpace} -> {default Nothing _ : Maybe Bool} -> {default False _ : Bool} -> LType -> {default Nothing _ : Maybe LExpr} -> {default [] _ : List LTag} -> GVarDef
Make a global variable definition with configurable options.
Creates a global variable definition with comprehensive configuration
options including symbol information, thread locality, address space,
and initialization settings.
@ name The global variable name (identifier)
@ symbolInfo Symbol information including linkage, preemption, visibility, and storage
@ threadLocality Thread-local storage model if applicable
@ addressInfo Address information for the global variable
@ addressSpace Address space where the global variable resides
@ externallyInitialized Whether the variable is initialized externally
@ isConst Whether the global variable is constant (immutable)
@ ty The type of the global variable
@ init Optional initializer constant for the variable
@ tags Additional tags for the global variable
Visibility: exportalias : String -> {default emptySymbolInfo _ : SymbolInfo} -> {default Nothing _ : Maybe ThreadLocality} -> {default Nothing _ : Maybe AddressInfo} -> LType -> {default ty _ : LType} -> String -> {default [] _ : List LTag} -> Alias
Create an alias for an existing global value.
Creates an alias that provides an alternative name for an existing
global variable, function, or other global value. The alias has the
same type and points to the same target.
@ name The alias name (identifier)
@ symbolInfo Symbol information including linkage, preemption, visibility, and storage
@ threadLocality Thread-local storage model if applicable
@ addressInfo Address information for the alias
@ ty The type of the aliased value
@ ty2 Alternative type specification (defaults to ty)
@ target The name of the target being aliased
@ tags Additional tags for the alias
Visibility: exportmkModule : {default Nothing _ : Maybe String} -> {default Nothing _ : Maybe String} -> {default [] _ : List LClause} -> {default Nothing _ : Maybe (List LTag)} -> LModule
Create an LLVM module with configurable options.
Creates a complete LLVM module with optional data layout specification,
target triple, module contents, and metadata tags. This is the primary
way to construct LLVM modules programmatically.
@ dataLayout Optional data layout string specifying target data layout
@ target Optional target triple string (e.g., "x86_64-unknown-linux-gnu")
@ text List of top-level clauses (functions, globals, etc.) in the module
@ tags Optional metadata tags for the module
Visibility: exportsimpleModule : List LClause -> LModule
Create a simple LLVM module with text clauses.
Creates a basic LLVM module with only the essential text clauses,
using default values for data layout, target triple, and tags.
This is the most common way to create modules.
@ clauses List of top-level clauses (functions, globals, etc.) for the module
Visibility: export