Goose  Diff

Differences From Artifact [b4ed6415a6]:

  • File bs/cir/logic.h — part of check-in [7d2def7b75] at 2020-12-27 14:40:24 on branch trunk — Renamed "ir" to "eir" (expression intermediate representation) and "llr" to "cir" (code intermediate representation) for clarity. (user: achavasse size: 653)

To Artifact [535ca02a81]:

  • File bs/cir/logic.h — part of check-in [26c691ecb9] at 2021-01-02 18:24:23 on branch trunk — Yet one more reference/address refactor: each calculation step (getting temp addr, getting var addr, selecting a member) is now a separate cir instruction. We need this level of generalization to be able to obtain addresses from anywhere, including variables and function parameters. (user: achavasse size: 847)

18
19
20
21
22
23
24







25
26
27
28
29
30
31
                return IsValueConstantOrExecutable( m_operand );
            }

            bool canBeEagerlyEvaluated() const
            {
                return CanValueBeEagerlyEvaluated( m_operand );
            }








        private:
            eir::Value m_operand;
    };
}

#endif







>
>
>
>
>
>
>







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
                return IsValueConstantOrExecutable( m_operand );
            }

            bool canBeEagerlyEvaluated() const
            {
                return CanValueBeEagerlyEvaluated( m_operand );
            }

            bool isCompTimeStackAddr() const { return false; }

            bool operator<( const Not& rhs ) const
            {
                return m_operand < rhs.m_operand;
            }

        private:
            eir::Value m_operand;
    };
}

#endif