Pseudocode: Generate merge instruction regardless of number of branches
This commit is contained in:
@@ -123,15 +123,15 @@ fun doTestCopy4(list: List<String>?) : Int {
|
||||
}
|
||||
}
|
||||
---------------------
|
||||
<v0>: {<: List<String>?} NEW: magic[FAKE_INITIALIZER](list: List<String>?) -> <v0>
|
||||
doSmth() <v1>: * NEW: call(doSmth(), doSmth) -> <v1>
|
||||
{ doSmth() } <v1>: * COPY
|
||||
list <v2>: * NEW: r(list) -> <v2>
|
||||
null <v3>: * NEW: r(null) -> <v3>
|
||||
list != null <v4>: Boolean NEW: call(list != null, equals|<v2>, <v3>) -> <v4>
|
||||
{ } !<v5>: *
|
||||
if(list != null) { } !<v5>: * COPY
|
||||
{ if(list != null) { } } !<v5>: * COPY
|
||||
try { doSmth() } finally { if(list != null) { } } <v1>: * COPY
|
||||
{ try { doSmth() } finally { if(list != null) { } } } <v1>: * COPY
|
||||
<v0>: {<: List<String>?} NEW: magic[FAKE_INITIALIZER](list: List<String>?) -> <v0>
|
||||
doSmth() <v1>: * NEW: call(doSmth(), doSmth) -> <v1>
|
||||
{ doSmth() } <v1>: * COPY
|
||||
list <v2>: * NEW: r(list) -> <v2>
|
||||
null <v3>: * NEW: r(null) -> <v3>
|
||||
list != null <v4>: Boolean NEW: call(list != null, equals|<v2>, <v3>) -> <v4>
|
||||
{ } !<v5>: *
|
||||
if(list != null) { } <v6>: * NEW: merge(if(list != null) { }|!<v5>) -> <v6>
|
||||
{ if(list != null) { } } <v6>: * COPY
|
||||
try { doSmth() } finally { if(list != null) { } } <v7>: * NEW: merge(try { doSmth() } finally { if(list != null) { } }|<v1>) -> <v7>
|
||||
{ try { doSmth() } finally { if(list != null) { } } } <v7>: * COPY
|
||||
=====================
|
||||
|
||||
Reference in New Issue
Block a user