Goose  Diff

Differences From Artifact [0cd0522c24]:

  • File bs/llr/instruction.h — part of check-in [56107a5d5e] at 2019-08-06 16:04:21 on branch trunk — Implemented comparison operators. (user: achavasse size: 4126)

To Artifact [1fbde857d2]:

  • File bs/llr/instruction.h — part of check-in [b0b8db5e09] at 2019-08-07 17:29:08 on branch trunk — llr, execute, codegen: implemented the AllocVar and GetVar instructions. (user: achavasse size: 4237)

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
                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( Phi&& p ) :
                m_content( move( p ) )
            {}

            Instruction( LoadConstInt&& lci ) :
                m_content( move( lci ) )







<
<
<
<







>
>
>
>
>
>
>
>







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( 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
            Instruction( SLE&& x ) :
                m_content( move( x ) )
            {}

            using Content = variant
            <
                ptr< CFG >, // CFG inlining
                GetArg,
                Call,
                CreateTemporary,
                GetTemporary,


                Phi,
                LoadConstInt,
                LoadConstStr,

                And,
                Or,
                Xor,







<



>
>







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

                Call,
                CreateTemporary,
                GetTemporary,
                AllocVar,
                GetVar,
                Phi,
                LoadConstInt,
                LoadConstStr,

                And,
                Or,
                Xor,
174
175
176
177
178
179
180
181
182
183
184
185

            const auto& content() const { return m_content; }

            bool canBeExecuted() const;
            bool canBeEagerlyEvaluated() const;

        private:
            Content m_content = GetArg( 0 );
    };
}

#endif







|




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;
    };
}

#endif