File tree Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ class NQP::Optimizer {
3
3
4
4
method optimize ($ ast , * % adverbs ) {
5
5
@ ! block_stack := [$ ast [0 ]];
6
- self . visit_children($ ast [ 0 ] );
6
+ self . visit_children($ ast );
7
7
$ ast ;
8
8
}
9
9
@@ -50,7 +50,7 @@ class NQP::Optimizer {
50
50
!! " " ;
51
51
if $ typeinfo eq " _i" {
52
52
return 1
53
- } elsif $ node . op eq ' chars' || $ node . op eq ' ord' {
53
+ } elsif $ node . op eq ' chars' || $ node . op eq ' ord' || $ node . op eq ' elems ' {
54
54
return 1
55
55
}
56
56
} elsif nqp ::istype($ node , QAST ::IVal) {
@@ -75,16 +75,16 @@ class NQP::Optimizer {
75
75
if $ typeinfo eq ' _n' && ($ asm eq ' add' || $ asm eq ' sub' || $ asm eq ' mul' ) {
76
76
my $ newopn := $ asm ~ " _i" ;
77
77
if returns_int($ op [0 ]) && returns_int($ op [1 ]) {
78
- my $ newopn := nqp :: substr ( $ op . op, 0 , 3 ) ~ " _i" ;
79
- $ op . name ($ newopn );
78
+ my $ newopn := $ asm ~ " _i" ;
79
+ $ op . op ($ newopn );
80
80
$ op . returns (self . find_sym(" int" ));
81
- say ($ op . op ~ " " ~ $ newopn ~ " " ~ $ op . dump);
81
+ say ($ op . dump);
82
82
say (" transformed!" );
83
83
say (" " );
84
84
} else {
85
85
$ op . returns (self . find_sym(" num" ));
86
86
say (returns_int($ op [0 ]) ~ " / " ~ returns_int($ op [1 ]));
87
- say ($ op . op ~ " " ~ $ newopn ~ " " ~ $ op . dump);
87
+ say ($ op . dump);
88
88
say (" not transformed!" );
89
89
say (" " );
90
90
}
You can’t perform that action at this time.
0 commit comments