mun_codegen 0.3.0

LLVM IR code generation for Mun
---
source: crates/mun_codegen/src/test.rs
expression: "\n    pub fn equals(a: i16, b: i16) -> bool { a == b }\n    pub fn not_equal(a: i16, b: i16) -> bool { a != b}\n    pub fn less(a: i16, b: i16) -> bool { a < b }\n    pub fn less_equal(a: i16, b: i16) -> bool { a <= b }\n    pub fn greater(a: i16, b: i16) -> bool { a > b }\n    pub fn greater_equal(a: i16, b: i16) -> bool { a >= b }\n                        "
---
; == FILE IR (mod) =====================================
; ModuleID = 'mod'
source_filename = "mod"

%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [3 x i8], %"mun_codegen::ir::types::TypeInfoData", [0 x i64] }>
%"mun_codegen::ir::types::TypeInfoData" = type <{ [0 x i8], i8, [39 x i8] }>

@global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*]

define i1 @equals(i16 %0, i16 %1) {
body:
  %eq = icmp eq i16 %0, %1
  ret i1 %eq
}

define i1 @not_equal(i16 %0, i16 %1) {
body:
  %neq = icmp ne i16 %0, %1
  ret i1 %neq
}

define i1 @less(i16 %0, i16 %1) {
body:
  %less = icmp slt i16 %0, %1
  ret i1 %less
}

define i1 @less_equal(i16 %0, i16 %1) {
body:
  %lesseq = icmp sle i16 %0, %1
  ret i1 %lesseq
}

define i1 @greater(i16 %0, i16 %1) {
body:
  %greater = icmp sgt i16 %0, %1
  ret i1 %greater
}

define i1 @greater_equal(i16 %0, i16 %1) {
body:
  %greatereq = icmp sge i16 %0, %1
  ret i1 %greatereq
}

; == GROUP IR (mod) ====================================
; ModuleID = 'group_name'
source_filename = "group_name"

%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [3 x i8], %"mun_codegen::ir::types::TypeInfoData", [0 x i64] }>
%"mun_codegen::ir::types::TypeInfoData" = type <{ [0 x i8], i8, [39 x i8] }>

@"type_info::<core::i16>::name" = private unnamed_addr constant [10 x i8] c"core::i16\00"
@"type_info::<core::i16>" = private unnamed_addr constant <{ [16 x i8], i8*, [48 x i8] }> <{ [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::<core::i16>::name", i32 0, i32 0), [48 x i8] c"\10\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" }>
@"type_info::<core::bool>::name" = private unnamed_addr constant [11 x i8] c"core::bool\00"
@"type_info::<core::bool>" = private unnamed_addr constant <{ [16 x i8], i8*, [48 x i8] }> <{ [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::<core::bool>::name", i32 0, i32 0), [48 x i8] c"\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" }>
@global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::<core::i16>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<core::bool>"]