mun_codegen 0.4.0

LLVM IR code generation for Mun
---
source: crates/mun_codegen/src/test.rs
expression: "\n    pub fn foo(a:i32) -> i32 {\n        let b = if a > 3 {\n            let c = if a > 4 {\n                a+1\n            } else {\n                a+3\n            }\n            c\n        } else {\n            a-1\n        }\n        b\n    }\n    "
---
; == FILE IR (mod) =====================================
; ModuleID = 'mod'
source_filename = "mod"

@global_type_lookup_table = external global [1 x i64*]

define i32 @foo(i32 %0) {
body:
  %greater = icmp sgt i32 %0, 3
  br i1 %greater, label %then, label %else

then:                                             ; preds = %body
  %greater3 = icmp sgt i32 %0, 4
  %add = add i32 %0, 1
  %add9 = add i32 %0, 3
  %iftmp = select i1 %greater3, i32 %add, i32 %add9
  br label %if_merge

else:                                             ; preds = %body
  %sub = sub i32 %0, 1
  br label %if_merge

if_merge:                                         ; preds = %else, %then
  %iftmp12 = phi i32 [ %iftmp, %then ], [ %sub, %else ]
  ret i32 %iftmp12
}

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

@global_type_lookup_table = global [1 x i64*] zeroinitializer