# module LLVM

##
Defined in:

llvm.cr
llvm/enums.cr
llvm/enums/atomic.cr

##
Constant Summary

DEBUG_METADATA_VERSION = `3`

##
Class Method Summary

- .default_target_triple : String
- .host_cpu_name : String
- .init_aarch64 : Nil
- .init_all_targets : Nil
- .init_amdgpu : Nil
- .init_arc : Nil
- .init_arm : Nil
- .init_avr : Nil
- .init_bpf : Nil
- .init_csky : Nil
- .init_directx : Nil
- .init_hexagon : Nil
- .init_lanai : Nil
- .init_loongarch : Nil
- .init_m68k : Nil
- .init_mips : Nil
- .init_msp430 : Nil
- .init_native_target : Nil
- .init_nvptx : Nil
- .init_powerpc : Nil
- .init_riscv : Nil
- .init_sparc : Nil
- .init_spirv : Nil
- .init_systemz : Nil
- .init_ve : Nil
- .init_webassembly : Nil
- .init_x86 : Nil
- .init_xcore : Nil
- .init_xtensa : Nil
- .multithreaded? : Bool
- .normalize_triple(triple : String) : String
- .parse_command_line_options(options : Enumerable(String), overview : String = "") : Nil
- .run_passes(module mod : Module, passes : String, target_machine : TargetMachine, options : PassBuilderOptions)
- .start_multithreaded : Bool

  DEPRECATED This method has no effect

- .stop_multithreaded

  DEPRECATED This method has no effect

- .string_and_dispose(chars) : String
- .to_io(chars, io) : Nil
- .version

  Returns the runtime version of LLVM.

##
Class Method Detail

def self.default_target_triple : String #
def self.host_cpu_name : String #
def self.init_aarch64 : Nil #
def self.init_all_targets : Nil #
def self.init_amdgpu : Nil #
def self.init_arc : Nil #
def self.init_arm : Nil #
def self.init_avr : Nil #
def self.init_bpf : Nil #
def self.init_csky : Nil #
def self.init_directx : Nil #
def self.init_hexagon : Nil #
def self.init_lanai : Nil #
def self.init_loongarch : Nil #
def self.init_m68k : Nil #
def self.init_mips : Nil #
def self.init_msp430 : Nil #
def self.init_native_target : Nil #
def self.init_nvptx : Nil #
def self.init_powerpc : Nil #
def self.init_riscv : Nil #
def self.init_sparc : Nil #
def self.init_spirv : Nil #
def self.init_systemz : Nil #
def self.init_ve : Nil #
def self.init_webassembly : Nil #
def self.init_x86 : Nil #
def self.init_xcore : Nil #
def self.init_xtensa : Nil #
def self.multithreaded? : Bool #
def self.normalize_triple(triple : String) : String #
def self.parse_command_line_options(options : Enumerable(String), overview : String = "") : Nil #
def self.run_passes(module mod : Module, passes : String, target_machine : TargetMachine, options : PassBuilderOptions) #
def self.start_multithreaded : Bool #

DEPRECATED This method has no effect

def self.stop_multithreaded #

DEPRECATED This method has no effect

def self.string_and_dispose(chars) : String #
def self.to_io(chars, io) : Nil #
def self.version #

Returns the runtime version of LLVM.

Starting with LLVM 16, this method returns the version as reported by `LLVMGetVersion` at runtime. Older versions of LLVM do not expose this information, so the value falls back to `LibLLVM::VERSION` which is determined at compile time and might slightly be out of sync to the dynamic library loaded at runtime.