To keep cross-compiling straightforward, Cretonne shouldn't have any behavior that depends on the host. This renames the "Native" calling convention to "SystemV", which has a defined meaning for each target, so that it's clear that the calling convention doesn't change depending on what host Cretonne is running on.
84 lines
1.8 KiB
Plaintext
84 lines
1.8 KiB
Plaintext
test licm
|
|
|
|
function %complex(i32) -> i32 system_v {
|
|
ebb0(v0: i32):
|
|
jump ebb1(v0)
|
|
|
|
ebb1(v1: i32):
|
|
v2 = iconst.i32 1
|
|
v3 = iconst.i32 4
|
|
v4 = iadd v2, v1
|
|
brz v1, ebb2(v2)
|
|
jump ebb4(v4)
|
|
|
|
ebb2(v5: i32):
|
|
v6 = iconst.i32 2
|
|
v7 = iadd v5, v4
|
|
v8 = iadd v6, v1
|
|
jump ebb3(v8)
|
|
|
|
ebb3(v9: i32):
|
|
v10 = iadd v9, v5
|
|
v11 = iadd.i32 v1, v4
|
|
brz.i32 v1, ebb2(v9)
|
|
jump ebb6(v10)
|
|
|
|
ebb4(v12: i32):
|
|
v13 = iconst.i32 3
|
|
v14 = iadd v12, v13
|
|
v15 = iadd.i32 v4, v13
|
|
jump ebb5(v13)
|
|
|
|
ebb5(v16: i32):
|
|
v17 = iadd.i32 v14, v4
|
|
brz.i32 v1, ebb4(v16)
|
|
jump ebb6(v16)
|
|
|
|
ebb6(v18: i32):
|
|
v19 = iadd v18, v2
|
|
v20 = iadd.i32 v2, v3
|
|
brz.i32 v1, ebb1(v20)
|
|
return v19
|
|
}
|
|
|
|
; sameln: function %complex
|
|
; nextln: ebb0(v0: i32):
|
|
; nextln: v2 = iconst.i32 1
|
|
; nextln: v3 = iconst.i32 4
|
|
; nextln: v6 = iconst.i32 2
|
|
; nextln: v13 = iconst.i32 3
|
|
; nextln: v20 = iadd v2, v3
|
|
; nextln: jump ebb1(v0)
|
|
; nextln:
|
|
; nextln: ebb1(v1: i32):
|
|
; nextln: v4 = iadd.i32 v2, v1
|
|
; nextln: v8 = iadd.i32 v6, v1
|
|
; nextln: v11 = iadd v1, v4
|
|
; nextln: brz v1, ebb2(v2)
|
|
; nextln: v15 = iadd v4, v13
|
|
; nextln: jump ebb4(v4)
|
|
; nextln:
|
|
; nextln: ebb2(v5: i32):
|
|
; nextln: v7 = iadd v5, v4
|
|
; nextln: jump ebb3(v8)
|
|
; nextln:
|
|
; nextln: ebb3(v9: i32):
|
|
; nextln: v10 = iadd v9, v5
|
|
; nextln: brz.i32 v1, ebb2(v9)
|
|
; nextln: jump ebb6(v10)
|
|
; nextln:
|
|
; nextln: ebb4(v12: i32):
|
|
; nextln: v14 = iadd v12, v13
|
|
; nextln: jump ebb5(v13)
|
|
; nextln:
|
|
; nextln: ebb5(v16: i32):
|
|
; nextln: v17 = iadd.i32 v14, v4
|
|
; nextln: brz.i32 v1, ebb4(v16)
|
|
; nextln: jump ebb6(v16)
|
|
; nextln:
|
|
; nextln: ebb6(v18: i32):
|
|
; nextln: v19 = iadd v18, v2
|
|
; nextln: brz.i32 v1, ebb1(v20)
|
|
; nextln: return v19
|
|
; nextln: }
|