14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
-
-
-
-
+
+
+
+
+
+
+
+
|
m_content( move( c ) )
{}
Instruction( ptr< CFG >&& ic ) :
m_content( move( ic ) )
{}
Instruction( GetArg&& gv ) :
m_content( move( gv ) )
{}
Instruction( CreateTemporary&& ct ) :
m_content( move( ct ) )
{}
Instruction( GetTemporary&& gt ) :
m_content( move( gt ) )
{}
Instruction( AllocVar&& av ) :
m_content( move( av ) )
{}
Instruction( GetVar&& gv ) :
m_content( move( gv ) )
{}
Instruction( Phi&& p ) :
m_content( move( p ) )
{}
Instruction( LoadConstInt&& lci ) :
m_content( move( lci ) )
|
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
-
+
+
|
Instruction( SLE&& x ) :
m_content( move( x ) )
{}
using Content = variant
<
ptr< CFG >, // CFG inlining
GetArg,
Call,
CreateTemporary,
GetTemporary,
AllocVar,
GetVar,
Phi,
LoadConstInt,
LoadConstStr,
And,
Or,
Xor,
|
174
175
176
177
178
179
180
181
182
183
184
185
|
179
180
181
182
183
184
185
186
187
188
189
190
|
-
+
|
const auto& content() const { return m_content; }
bool canBeExecuted() const;
bool canBeEagerlyEvaluated() const;
private:
Content m_content = GetArg( 0 );
Content m_content;
};
}
#endif
|