90b7170582
No emitted bytecode relies on Continuation being stored in local 0 anymore. Stop using local 0 for this purpose and compute offset to the Continuation at JIT time. 16 bytes of memory freed. At this point all locals of Continuation construction wrapper share the same indices with their respective locals of Continuation body, which should allow further optimizations.
91 linhas
1.3 KiB
Plaintext
91 linhas
1.3 KiB
Plaintext
array(3) {
|
|
[0]=>
|
|
array(2) {
|
|
["function"]=>
|
|
string(12) "my_generator"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
[1]=>
|
|
array(7) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(10)
|
|
["function"]=>
|
|
string(4) "send"
|
|
["class"]=>
|
|
string(12) "Continuation"
|
|
["object"]=>
|
|
object(Continuation)#1 (0) {
|
|
}
|
|
["type"]=>
|
|
string(2) "->"
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
NULL
|
|
}
|
|
}
|
|
[2]=>
|
|
array(4) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(26)
|
|
["function"]=>
|
|
string(10) "my_wrapper"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
array(4) {
|
|
["function"]=>
|
|
string(19) "my_member_generator"
|
|
["class"]=>
|
|
string(8) "my_class"
|
|
["type"]=>
|
|
string(2) "::"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
[1]=>
|
|
array(7) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(23)
|
|
["function"]=>
|
|
string(4) "send"
|
|
["class"]=>
|
|
string(12) "Continuation"
|
|
["object"]=>
|
|
object(Continuation)#1 (0) {
|
|
}
|
|
["type"]=>
|
|
string(2) "->"
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
NULL
|
|
}
|
|
}
|
|
[2]=>
|
|
array(4) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(27)
|
|
["function"]=>
|
|
string(16) "my_class_wrapper"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|