Goose  Diff

Differences From Artifact [4dbcee2c6a]:

  • File bs/cir/gettemporary.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: 947)

To Artifact [68e94cc898]:

  • File bs/cir/gettemporary.h — part of check-in [90c951f66f] at 2021-01-12 21:08:37 on branch trunk — Implemented missing lowering of reference types to pointer types, added a bunch of runtime/compilation time reference tests. (user: achavasse size: 884)

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
            {}

            const auto& type() const { return m_type; }
            const auto& index() const { return m_index; }

            bool canBeExecuted() const { return true; }
            bool canBeEagerlyEvaluated() const { return true; }
            bool isCompTimeStackAddr() const { return false; }

            bool operator<( const GetTemporary& rhs ) const
            {
                if( m_index != rhs.m_index )
                    return m_index < rhs.m_index;
                return m_type < rhs.m_type;
            }







<







13
14
15
16
17
18
19

20
21
22
23
24
25
26
            {}

            const auto& type() const { return m_type; }
            const auto& index() const { return m_index; }

            bool canBeExecuted() const { return true; }
            bool canBeEagerlyEvaluated() const { return true; }


            bool operator<( const GetTemporary& rhs ) const
            {
                if( m_index != rhs.m_index )
                    return m_index < rhs.m_index;
                return m_type < rhs.m_type;
            }