dbdbc9a844
note: operations are hardcoded e.g. operato plus resolved in corresponding instruction.
fun sum(a:Int, b:Int) = a + b
produces following code:
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.12.0"
define i32 @"kfun:sum"(i32, i32) {
entry:
%a = alloca i32
store i32 %0, i32* %a
%b = alloca i32
store i32 %1, i32* %b
%tmp1 = load i32, i32* %a
%tmp2 = load i32, i32* %b
%tmp0 = add i32 %tmp1, %tmp2
ret i32 %tmp0
}
Note: this code is optimizable with -mem2reg
> opt-mp-3.8 -mem2reg sum.BCkt -o - | llvm-dis-mp-3.8 -o -
; ModuleID = '<stdin>'
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.12.0"
define i32 @"kfun:sum"(i32, i32) {
entry:
%tmp0 = add i32 %0, %1
ret i32 %tmp0
}
6 lines
59 B
C
6 lines
59 B
C
int foo(int a, int b){
|
|
int c;
|
|
c = a + b;
|
|
return c;
|
|
}
|