e49eae528c
There's some descriptor-based code remaining. Need some more work on IR.
90 lines
5.8 KiB
Plaintext
Vendored
90 lines
5.8 KiB
Plaintext
Vendored
// FILE: /isPerfect.kt
|
|
// FUN: isPerfect
|
|
BB 0
|
|
CONTENT
|
|
1 FUN name:isPerfect visibility:public modality:FINAL <> (n:kotlin.Int) returnType:kotlin.Boolean flags:[]
|
|
2 CONST Int type=kotlin.Int value=1
|
|
3 VAR name:sum type:kotlin.Int flags:[var]
|
|
4 CONST Int type=kotlin.Int value=2
|
|
5 GET_VAR 'VALUE_PARAMETER name:n index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
|
|
6 CONST Int type=kotlin.Int value=2
|
|
7 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:div visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=DIV
|
|
8 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:rangeTo visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Int) returnType:kotlin.ranges.IntRange flags:[]' type=kotlin.ranges.IntRange origin=RANGE
|
|
9 CALL 'FUN FAKE_OVERRIDE name:iterator visibility:public modality:OPEN <> ($this:kotlin.ranges.IntProgression) returnType:kotlin.collections.IntIterator flags:[]' type=kotlin.collections.IntIterator origin=FOR_LOOP_ITERATOR
|
|
10 VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:kotlin.collections.IntIterator flags:[val]
|
|
11 WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
|
OUTGOING -> BB 1
|
|
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
|
BB 1
|
|
INCOMING <- BB 0, 3, 6
|
|
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
|
CONTENT
|
|
1 GET_VAR 'VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:kotlin.collections.IntIterator flags:[val]' type=kotlin.collections.IntIterator origin=null
|
|
OUTGOING -> BB 2, 7
|
|
CALL 'FUN FAKE_OVERRIDE name:hasNext visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Iterator<kotlin.Int>) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
|
|
BB 2
|
|
INCOMING <- BB 1
|
|
CALL 'FUN FAKE_OVERRIDE name:hasNext visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Iterator<kotlin.Int>) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
|
|
CONTENT
|
|
1 GET_VAR 'VAR FOR_LOOP_ITERATOR name:tmp0_iterator type:kotlin.collections.IntIterator flags:[val]' type=kotlin.collections.IntIterator origin=null
|
|
2 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:next visibility:public modality:FINAL <> ($this:kotlin.collections.IntIterator) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=FOR_LOOP_NEXT
|
|
3 VAR FOR_LOOP_VARIABLE name:m type:kotlin.Int flags:[val]
|
|
4 WHEN type=kotlin.Unit origin=IF
|
|
5 GET_VAR 'VALUE_PARAMETER name:n index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
|
|
6 GET_VAR 'VAR FOR_LOOP_VARIABLE name:m type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
|
|
7 CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:rem visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PERC
|
|
8 CONST Int type=kotlin.Int value=0
|
|
OUTGOING -> BB 3, 4
|
|
CALL 'FUN IR_BUILTINS_STUB name:greater visibility:public modality:FINAL <> (arg0:kotlin.Int, arg1:kotlin.Int) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=GT
|
|
BB 3
|
|
INCOMING <- BB 2
|
|
CALL 'FUN IR_BUILTINS_STUB name:greater visibility:public modality:FINAL <> (arg0:kotlin.Int, arg1:kotlin.Int) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=GT
|
|
CONTENT
|
|
1 CONTINUE label=null loop.label=null
|
|
OUTGOING -> BB 1
|
|
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
|
BB 4
|
|
INCOMING <- BB 2
|
|
CALL 'FUN IR_BUILTINS_STUB name:greater visibility:public modality:FINAL <> (arg0:kotlin.Int, arg1:kotlin.Int) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=GT
|
|
CONTENT
|
|
1 SET_VAR 'VAR name:sum type:kotlin.Int flags:[var]' type=kotlin.Unit origin=PLUSEQ
|
|
2 WHEN type=kotlin.Unit origin=IF
|
|
3 GET_VAR 'VAR name:sum type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
|
|
4 GET_VAR 'VALUE_PARAMETER name:n index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
|
|
OUTGOING -> BB 5, 6
|
|
CALL 'FUN IR_BUILTINS_STUB name:greater visibility:public modality:FINAL <> (arg0:kotlin.Int, arg1:kotlin.Int) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=GT
|
|
BB 5
|
|
INCOMING <- BB 4
|
|
CALL 'FUN IR_BUILTINS_STUB name:greater visibility:public modality:FINAL <> (arg0:kotlin.Int, arg1:kotlin.Int) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=GT
|
|
CONTENT
|
|
1 BREAK label=null loop.label=null
|
|
OUTGOING -> BB 8
|
|
While exit: WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
|
BB 6
|
|
INCOMING <- BB 4
|
|
CALL 'FUN IR_BUILTINS_STUB name:greater visibility:public modality:FINAL <> (arg0:kotlin.Int, arg1:kotlin.Int) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=GT
|
|
CONTENT
|
|
OUTGOING -> BB 1
|
|
While entry: WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
|
BB 7
|
|
INCOMING <- BB 1
|
|
CALL 'FUN FAKE_OVERRIDE name:hasNext visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Iterator<kotlin.Int>) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
|
|
CONTENT
|
|
OUTGOING -> BB 8
|
|
While exit: WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
|
BB 8
|
|
INCOMING <- BB 5, 7
|
|
While exit: WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
|
CONTENT
|
|
1 GET_VAR 'VAR name:sum type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
|
|
2 GET_VAR 'VALUE_PARAMETER name:n index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
|
|
3 CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
|
|
4 RETURN type=kotlin.Nothing from='FUN name:isPerfect visibility:public modality:FINAL <> (n:kotlin.Int) returnType:kotlin.Boolean flags:[]'
|
|
OUTGOING -> NONE
|
|
Function exit: FUN name:isPerfect visibility:public modality:FINAL <> (n:kotlin.Int) returnType:kotlin.Boolean flags:[]
|
|
|
|
// END FUN: isPerfect
|
|
|
|
// END FILE: /isPerfect.kt
|
|
|