# 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_arm : Nil
- .init_avr : Nil
- .init_native_target : Nil
- .init_webassembly : Nil
- .init_x86 : 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_arm : Nil #
def self.init_avr : Nil #
def self.init_native_target : Nil #
def self.init_webassembly : Nil #
def self.init_x86 : 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.