equal
deleted
inserted
replaced
1 "{ Package: 'stx:goodies/petitparser/compiler' }" |
1 "{ Package: 'stx:goodies/petitparser/compiler' }" |
2 |
2 |
3 "{ NameSpace: Smalltalk }" |
3 "{ NameSpace: Smalltalk }" |
4 |
4 |
5 PPCPass subclass:#PPCInliningVisitor |
5 PPCPassVisitor subclass:#PPCInliningVisitor |
6 instanceVariableNames:'canInline acceptedNodes' |
6 instanceVariableNames:'canInline acceptedNodes' |
7 classVariableNames:'' |
7 classVariableNames:'' |
8 poolDictionaries:'' |
8 poolDictionaries:'' |
9 category:'PetitCompiler-Visitors' |
9 category:'PetitCompiler-Visitors' |
10 ! |
10 ! |
11 |
11 |
12 |
12 |
13 !PPCInliningVisitor methodsFor:'initialization'! |
13 !PPCInliningVisitor methodsFor:'initialization'! |
14 |
14 |
15 initialize |
15 initialize |
16 super initialize. |
16 super initialize. |
17 |
|
18 acceptedNodes := 0 |
17 acceptedNodes := 0 |
|
18 |
|
19 "Modified (format): / 29-08-2015 / 07:40:06 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
19 ! ! |
20 ! ! |
20 |
21 |
21 !PPCInliningVisitor methodsFor:'testing'! |
22 !PPCInliningVisitor methodsFor:'testing'! |
22 |
23 |
23 canInline |
24 canInline |
101 |
102 |
102 visitStarMessagePredicateNode: node |
103 visitStarMessagePredicateNode: node |
103 ^ self markForInline: node |
104 ^ self markForInline: node |
104 ! |
105 ! |
105 |
106 |
106 visitTokenConsumeNode: node |
|
107 "super visitTokenConsumeNode: node." |
|
108 |
|
109 node name isNil ifTrue: [ |
|
110 self markForInline: node |
|
111 ]. |
|
112 |
|
113 ^ node |
|
114 ! |
|
115 |
|
116 visitTokenStarMessagePredicateNode: node |
107 visitTokenStarMessagePredicateNode: node |
117 ^ self markForInline: node |
108 ^ self markForInline: node |
118 ! |
109 ! |
119 |
110 |
120 visitTokenStarSeparatorNode: node |
111 visitTokenStarSeparatorNode: node |