Pseudocode: Introduce "merge" instruction
This commit is contained in:
@@ -46,11 +46,11 @@ L0:
|
||||
r(true) -> <v5>
|
||||
jf(L2|<v5>) NEXT:[r(2) -> <v7>, r(1) -> <v6>]
|
||||
r(1) -> <v6>
|
||||
jmp(L3) NEXT:[magic(if (true) 1 else 2|<v6>, <v7>) -> <v8>]
|
||||
jmp(L3) NEXT:[merge(if (true) 1 else 2|<v6>, <v7>) -> <v8>]
|
||||
L2:
|
||||
r(2) -> <v7> PREV:[jf(L2|<v5>)]
|
||||
L3:
|
||||
magic(if (true) 1 else 2|<v6>, <v7>) -> <v8> PREV:[jmp(L3), r(2) -> <v7>]
|
||||
merge(if (true) 1 else 2|<v6>, <v7>) -> <v8> PREV:[jmp(L3), r(2) -> <v7>]
|
||||
w(x|<v8>)
|
||||
v(val y = true && false)
|
||||
r(true) -> <v9>
|
||||
|
||||
@@ -31,12 +31,12 @@ L0:
|
||||
jf(L2|<v2>) NEXT:[mark({ 2 }), mark({ 1 })]
|
||||
3 mark({ 1 })
|
||||
r(1) -> <v3>
|
||||
2 jmp(L3) NEXT:[magic(if (a) { 1 } else { 2 }|<v3>, <v4>) -> <v5>]
|
||||
2 jmp(L3) NEXT:[merge(if (a) { 1 } else { 2 }|<v3>, <v4>) -> <v5>]
|
||||
L2:
|
||||
3 mark({ 2 }) PREV:[jf(L2|<v2>)]
|
||||
r(2) -> <v4>
|
||||
L3:
|
||||
2 magic(if (a) { 1 } else { 2 }|<v3>, <v4>) -> <v5> PREV:[jmp(L3), r(2) -> <v4>]
|
||||
2 merge(if (a) { 1 } else { 2 }|<v3>, <v4>) -> <v5> PREV:[jmp(L3), r(2) -> <v4>]
|
||||
r(3) -> <v6>
|
||||
mark(if (a && b) 5 else 6)
|
||||
r(a) -> <v7>
|
||||
@@ -45,11 +45,11 @@ L3:
|
||||
L4:
|
||||
jf(L5) NEXT:[r(6) -> <v10>, r(5) -> <v9>] PREV:[jf(L4|<v7>), r(b) -> <v8>]
|
||||
r(5) -> <v9>
|
||||
jmp(L6) NEXT:[magic(if (a && b) 5 else 6|<v9>, <v10>) -> <v11>]
|
||||
jmp(L6) NEXT:[merge(if (a && b) 5 else 6|<v9>, <v10>) -> <v11>]
|
||||
L5:
|
||||
r(6) -> <v10> PREV:[jf(L5)]
|
||||
L6:
|
||||
magic(if (a && b) 5 else 6|<v9>, <v10>) -> <v11> PREV:[jmp(L6), r(6) -> <v10>]
|
||||
merge(if (a && b) 5 else 6|<v9>, <v10>) -> <v11> PREV:[jmp(L6), r(6) -> <v10>]
|
||||
r(7) -> <v12>
|
||||
mark(if (a || b) 8 else 9)
|
||||
r(a) -> <v13>
|
||||
@@ -58,11 +58,11 @@ L6:
|
||||
L7:
|
||||
jf(L8) NEXT:[r(9) -> <v16>, r(8) -> <v15>] PREV:[jt(L7|<v13>), r(b) -> <v14>]
|
||||
r(8) -> <v15>
|
||||
jmp(L9) NEXT:[magic(if (a || b) 8 else 9|<v15>, <v16>) -> <v17>]
|
||||
jmp(L9) NEXT:[merge(if (a || b) 8 else 9|<v15>, <v16>) -> <v17>]
|
||||
L8:
|
||||
r(9) -> <v16> PREV:[jf(L8)]
|
||||
L9:
|
||||
magic(if (a || b) 8 else 9|<v15>, <v16>) -> <v17> PREV:[jmp(L9), r(9) -> <v16>]
|
||||
merge(if (a || b) 8 else 9|<v15>, <v16>) -> <v17> PREV:[jmp(L9), r(9) -> <v16>]
|
||||
r(10) -> <v18>
|
||||
mark(if (a) 11)
|
||||
r(a) -> <v19>
|
||||
|
||||
Reference in New Issue
Block a user