class Savi::Compiler::CodeGen::DebugInfo
- Savi::Compiler::CodeGen::DebugInfo
- Reference
- Object
Defined in:
savi/compiler/code_gen/debug_info.crConstant Summary
-
LANGUAGE_ID =
12
-
TODO pick a real DWARF language ID
Constructors
Instance Method Summary
- #clear_loc
- #ctx : Context
- #ctx=(ctx : Context)
- #ctx? : Context | Nil
- #declare_local(pos, name, t : Reach::Ref, storage : LLVM::Value)
- #declare_local_inner(pos : Source::Pos, name : String, t : Reach::Ref, storage : LLVM::Value)
- #declare_self_local(pos : Source::Pos, t : Reach::Ref, storage : LLVM::Value)
- #di_create_basic_type(t : Reach::Ref | String, llvm_type : LLVM::Type, dwarf_type : LLVM::DwarfTypeEncoding)
- #di_create_enum_type(t : Reach::Ref, llvm_type : LLVM::Type)
- #di_create_fields_struct_type(t : Reach::Ref, llvm_type : LLVM::Type)
- #di_create_object_struct_pointer_type(t : Reach::Ref, llvm_struct_type : LLVM::Type)
- #di_create_object_struct_type(t : Reach::Ref, llvm_type : LLVM::Type)
- #di_create_pointer_type(name : String, element_di_type : LibLLVM::MetadataRef)
-
#di_create_struct_type(name : String, llvm_type : LLVM::Type, member_infos : Hash(Int32, Tuple(String, LLVM::Type, LibLLVM::MetadataRef)), pos : Source::Pos | Nil = nil)
This function is for cases where we are generating some internal struct type with no Reach::Ref, so the caller must supply the info directly.
- #di_file(source : Source)
- #di_func_new(pos : Source::Pos, llvm_func : LLVM::Function)
-
#di_func_type(file : LibLLVM::MetadataRef)
TODO build a real type description here.
- #di_opaque_object_pointer_type
- #di_runtime_member_info
- #di_type(t : Reach::Ref, llvm_type : LLVM::Type)
- #finish
- #func_end
- #func_start(gfunc : GenFunc, llvm_func : LLVM::Function)
- #func_start_raw(pos : Source::Pos, llvm_func : LLVM::Function)
- #in_func?
- #metadata(args)
- #set_loc(node : AST::Node)
- #set_loc(pos : Source::Pos)
Constructor Detail
def self.new(llvm : LLVM::Context, mod : LLVM::Module, builder : LLVM::Builder, target_data : LLVM::TargetData, runtime : PonyRT | VeronaRT)
#
Instance Method Detail
def di_create_basic_type(t : Reach::Ref | String, llvm_type : LLVM::Type, dwarf_type : LLVM::DwarfTypeEncoding)
#
def di_create_struct_type(name : String, llvm_type : LLVM::Type, member_infos : Hash(Int32, Tuple(String, LLVM::Type, LibLLVM::MetadataRef)), pos : Source::Pos | Nil = nil)
#
This function is for cases where we are generating some internal struct type with no Reach::Ref, so the caller must supply the info directly.