blob: 97281a34cf3b038cd648a858fb41f70ebc59971a [file]
--- if1
B0 = EntryBlock() dominates:(B6, B16, B5)
v22 = Constant("oops")
v25 = Constant(null)
v1 = Parameter(c1)
v2 = Parameter(c2)
v3 = Parameter(c3)
Branch(v1, true: B5, false: B6)
B5 = TargetBlock() idom:B0 dominates:(B10, B19, B9)
Branch(v2, true: B9, false: B10)
B9 = TargetBlock() idom:B5
Goto(B19)
B10 = TargetBlock() idom:B5 dominates:(B14, B13)
Branch(v3, true: B13, false: B14)
B13 = TargetBlock() idom:B10
Goto(B16)
B14 = TargetBlock() idom:B10
Goto(B19)
B19 = JoinBlock(B14, B9) idom:B5
DirectCall print(v22)
Goto(B16)
B6 = TargetBlock() idom:B0
Goto(B16)
B16 = JoinBlock(B6, B19, B13) idom:B0
Return(v25)
--- condition
B0 = EntryBlock()
v3 = Constant(3)
v5 = Constant(0)
v1 = Parameter(i)
v4 = BinaryIntOp %(v1, v3)
v6 = Comparison int ==(v4, v5)
Return(v6)
--- if2
B0 = EntryBlock() dominates:(B4, B40, B3)
v1 = Constant(1)
v6 = Constant(2)
v11 = Constant(3)
v22 = Constant(4)
v27 = Constant(5)
v44 = Constant(null)
v2 = DirectCall condition(v1)
Branch(v2, true: B3, false: B4)
B3 = TargetBlock() idom:B0 dominates:(B9, B19, B17, B8)
v7 = DirectCall condition(v6)
Branch(v7, true: B8, false: B9)
B8 = TargetBlock() idom:B3 dominates:(B14, B13)
v12 = DirectCall condition(v11)
Branch(v12, true: B13, false: B14)
B13 = TargetBlock() idom:B8
DirectCall print(v1)
Goto(B17)
B14 = TargetBlock() idom:B8
Goto(B19)
B9 = TargetBlock() idom:B3
Goto(B19)
B19 = JoinBlock(B9, B14) idom:B3 dominates:(B25, B32, B34, B24)
v23 = DirectCall condition(v22)
Branch(v23, true: B24, false: B25)
B24 = TargetBlock() idom:B19
Goto(B34)
B25 = TargetBlock() idom:B19 dominates:(B30, B29)
v28 = DirectCall condition(v27)
Branch(v28, true: B29, false: B30)
B29 = TargetBlock() idom:B25
Goto(B34)
B34 = JoinBlock(B29, B24) idom:B19
DirectCall print(v6)
Goto(B32)
B30 = TargetBlock() idom:B25
Goto(B32)
B32 = JoinBlock(B30, B34) idom:B19
Goto(B17)
B17 = JoinBlock(B32, B13) idom:B3
Goto(B40)
B4 = TargetBlock() idom:B0
DirectCall print(v11)
Goto(B40)
B40 = JoinBlock(B4, B17) idom:B0
Return(v44)
--- forLoop
B0 = EntryBlock() dominates:(B5)
v2 = Constant(0)
v18 = Constant(1)
v1 = Parameter(n)
Goto(B5)
B5 = JoinBlock(B0, B10) idom:B0 dominates:(B11, B10) loop-header (depth:1 body:(B5, B10) back-edges:(B10))
v25 = Phi(v2, v19)
v24 = Phi(v2, v15)
v9 = Comparison int <(v25, v1)
Branch(v9, true: B10, false: B11)
B10 = TargetBlock() idom:B5 in-loop:B5
v15 = BinaryIntOp +(v24, v25)
v19 = BinaryIntOp +(v25, v18)
Goto(B5)
B11 = TargetBlock() idom:B5
Return(v24)
--- whileLoop
B0 = EntryBlock() dominates:(B5)
v2 = Constant(0)
v18 = Constant(10)
v28 = Constant(1)
v1 = Parameter(n)
Goto(B5)
B5 = JoinBlock(B0, B21) idom:B0 dominates:(B11, B25, B10) loop-header (depth:1 body:(B5, B10, B21) back-edges:(B21))
v37 = Phi(v2, v29)
v35 = Phi(v2, v15)
v9 = Comparison int <(v37, v1)
Branch(v9, true: B10, false: B11)
B10 = TargetBlock() idom:B5 dominates:(B21, B20) in-loop:B5
v15 = BinaryIntOp +(v35, v37)
v19 = Comparison int >(v15, v18)
Branch(v19, true: B20, false: B21)
B20 = TargetBlock() idom:B10
Goto(B25)
B21 = TargetBlock() idom:B10 in-loop:B5
v29 = BinaryIntOp +(v37, v28)
Goto(B5)
B11 = TargetBlock() idom:B5
Goto(B25)
B25 = JoinBlock(B11, B20) idom:B5
v36 = Phi(v35, v15)
Return(v36)
--- doWhileLoop
B0 = EntryBlock() dominates:(B6)
v2 = Constant(0)
Constant(1)
v26 = Constant(-1)
v1 = Parameter(n)
Goto(B6)
B6 = JoinBlock(B0, B18) idom:B0 dominates:(B19, B18) loop-header (depth:1 body:(B6, B18) back-edges:(B18))
v25 = Phi(v1, v27)
v24 = Phi(v2, v10)
v10 = BinaryIntOp +(v24, v25)
v27 = BinaryIntOp +(v25, v26)
v17 = Comparison int >=(v27, v2)
Branch(v17, true: B18, false: B19)
B18 = TargetBlock() idom:B6 in-loop:B6
Goto(B6)
B19 = TargetBlock() idom:B6
Return(v10)
--- forInLoop
B0 = EntryBlock() dominates:(B7)
v2 = Constant(0)
v1 = Parameter(list)
v5 = InterfaceCall getter Iterable.iterator(v1)
Goto(B7)
B7 = JoinBlock(B0, B11) idom:B0 dominates:(B12, B11) loop-header (depth:1 body:(B7, B11) back-edges:(B11))
v24 = Phi(v2, v19)
v10 = InterfaceCall Iterator.moveNext(v5)
Branch(v10, true: B11, false: B12)
B11 = TargetBlock() idom:B7 in-loop:B7
v15 = InterfaceCall getter Iterator.current(v5)
v19 = BinaryIntOp +(v24, v15)
Goto(B7)
B12 = TargetBlock() idom:B7
Return(v24)
--- breakAndContinue
B0 = EntryBlock() dominates:(B5)
v3 = Constant(0)
v23 = Constant(3)
v35 = Constant(5)
v47 = Constant(1)
v56 = Constant(null)
v1 = Parameter(n)
v2 = Parameter(m)
Goto(B5)
B5 = JoinBlock(B0, B43) idom:B0 dominates:(B11, B10) loop-header (depth:1 body:(B5, B10, B14, B20, B43, B19, B26, B39, B30, B38, B25) back-edges:(B43))
v58 = Phi(v3, v53)
v9 = Comparison int <(v58, v1)
Branch(v9, true: B10, false: B11)
B10 = TargetBlock() idom:B5 dominates:(B14) in-loop:B5
Goto(B14)
B14 = JoinBlock(B10, B30) idom:B10 dominates:(B20, B43, B19) loop-header (depth:2 body:(B14, B19, B26, B39, B30, B25) back-edges:(B30))
v59 = Phi(v3, v48)
v18 = Comparison int <(v59, v2)
Branch(v18, true: B19, false: B20)
B19 = TargetBlock() idom:B14 dominates:(B26, B30, B25) in-loop:B14
v24 = Comparison int <(v59, v23)
Branch(v24, true: B25, false: B26)
B25 = TargetBlock() idom:B19 in-loop:B14
Goto(B30)
B26 = TargetBlock() idom:B19 dominates:(B39, B38) in-loop:B14
v34 = BinaryIntOp +(v58, v59)
v36 = BinaryIntOp %(v34, v35)
v37 = Comparison int ==(v36, v3)
Branch(v37, true: B38, false: B39)
B38 = TargetBlock() idom:B26 in-loop:B5
Goto(B43)
B39 = TargetBlock() idom:B26 in-loop:B14
Goto(B30)
B30 = JoinBlock(B39, B25) idom:B19 in-loop:B14
v48 = BinaryIntOp +(v59, v47)
Goto(B14)
B20 = TargetBlock() idom:B14 in-loop:B5
Goto(B43)
B43 = JoinBlock(B20, B38) idom:B14 in-loop:B5
v53 = BinaryIntOp +(v58, v47)
Goto(B5)
B11 = TargetBlock() idom:B5
Return(v56)
--- switchStatement
B0 = EntryBlock() dominates:(B9, B34, B3, B8)
v6 = Constant(1)
v12 = Constant(2)
v18 = Constant(3)
v24 = Constant(4)
v32 = Constant("1-2")
v36 = Constant("3")
v39 = Constant("3-4")
v43 = Constant(null)
v1 = Parameter(x)
v7 = Comparison int ==(v1, v6)
Branch(v7, true: B8, false: B9)
B8 = TargetBlock() idom:B0
Goto(B3)
B9 = TargetBlock() idom:B0 dominates:(B15, B14)
v13 = Comparison int ==(v1, v12)
Branch(v13, true: B14, false: B15)
B14 = TargetBlock() idom:B9
Goto(B3)
B3 = JoinBlock(B14, B8) idom:B0
DirectCall print(v32)
Goto(B34)
B15 = TargetBlock() idom:B9 dominates:(B21, B30, B5, B20)
v19 = Comparison int ==(v1, v18)
Branch(v19, true: B20, false: B21)
B20 = TargetBlock() idom:B15
DirectCall print(v36)
Goto(B5)
B21 = TargetBlock() idom:B15 dominates:(B27, B26)
v25 = Comparison int ==(v1, v24)
Branch(v25, true: B26, false: B27)
B26 = TargetBlock() idom:B21
Goto(B5)
B5 = JoinBlock(B26, B20) idom:B15
DirectCall print(v39)
Goto(B30)
B27 = TargetBlock() idom:B21
Goto(B30)
B30 = JoinBlock(B27, B5) idom:B15
Goto(B34)
B34 = JoinBlock(B30, B3) idom:B0
Return(v43)
--- tryBlocks
B0 = EntryBlock() dominates:(B4, B24, B3)
Constant(1)
Constant(2)
v11 = Constant(3)
v35 = Constant(null)
TryEntry(try-body: B3, catch-block: B4)
B3 = TargetBlock() exception-handler:B4 idom:B0
DirectCall print(v11)
Goto(B24)
B4 = CatchBlock() idom:B0
v38 = Parameter(x)
v26 = Parameter(#exception)
Parameter(#stackTrace)
DirectCall print(v26)
DirectCall print(v38)
Goto(B24)
B24 = JoinBlock(B4, B3) idom:B0
Return(v35)
--- tryFinallyWithBreaks
B0 = EntryBlock() dominates:(B2, B1)
v4 = Constant(10)
v6 = Constant(0)
Constant(5)
Constant(3)
Constant(1)
Constant(2)
v59 = Constant(20)
v84 = Constant(42)
Constant(true)
TryEntry(try-body: B1, catch-block: B2)
B1 = TargetBlock() exception-handler:B2 idom:B0 dominates:(B17, B16)
DirectCall print(v4)
TryEntry(try-body: B16, catch-block: B17)
B16 = TargetBlock() exception-handler:B17 idom:B1 dominates:(B30)
DirectCall print(v6)
Goto(B30)
B30 = JoinBlock(B16) exception-handler:B2 idom:B16
DirectCall print(v59)
Return(v84)
B17 = CatchBlock() exception-handler:B2 idom:B1
v57 = Parameter(#exception)
v58 = Parameter(#stackTrace)
DirectCall print(v59)
Throw(v57, v58)
B2 = CatchBlock() idom:B0
Parameter(#exception)
Parameter(#stackTrace)
Return(v84)
--- tryWithThrowRethrow
B0 = EntryBlock() dominates:(B4, B17, B3)
v6 = Constant(1)
v14 = Constant("Boom!")
v16 = Constant(null)
v26 = Constant(2)
v1 = Parameter(c1)
v2 = Parameter(c2)
TryEntry(try-body: B3, catch-block: B4)
B3 = TargetBlock() exception-handler:B4 idom:B0 dominates:(B10, B9)
DirectCall print(v6)
Branch(v1, true: B9, false: B10)
B9 = TargetBlock() exception-handler:B4 idom:B3
Throw(v14)
B10 = TargetBlock() exception-handler:B4 idom:B3
Goto(B17)
B4 = CatchBlock() idom:B0 dominates:(B24, B23)
v19 = Parameter(#exception)
v20 = Parameter(#stackTrace)
v22 = TypeTest(v19, Error)
Branch(v22, true: B23, false: B24)
B23 = TargetBlock() idom:B4 dominates:(B30, B29)
DirectCall print(v26)
Branch(v2, true: B29, false: B30)
B29 = TargetBlock() idom:B23
Throw(v19, v20)
B30 = TargetBlock() idom:B23
Goto(B17)
B17 = JoinBlock(B30, B10) idom:B0
Return(v16)
B24 = TargetBlock() idom:B4
Throw(v19, v20)
--- main
B0 = EntryBlock()
v1 = Constant("hey")
v3 = Constant(null)
DirectCall print(v1)
Return(v3)