Goose  Diff

Differences From Artifact [454b490fea]:

  • File bs/llr/branch.h — part of check-in [af650a9e95] at 2019-09-22 14:37:55 on branch trunk — Project renaming. (user: achavasse size: 1469)

To Artifact [5aa4d4e80d]:

  • File bs/llr/branch.h — part of check-in [4ae6912760] at 2019-09-29 22:30:12 on branch trunk —
    • Fixed some issues with implicit termination of void functions.
    • llr: give an index to each basic block, and keep track of back links towards previous blocks.
    (user: achavasse size: 1583)

14
15
16
17
18
19
20


21
22
23
24
25
26
27
            {}

            const auto& dest() const { return m_dest; }

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



        private:
            wptr< BasicBlock > m_dest;
    };

    class CondBranch
    {
        public:







>
>







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

            const auto& dest() const { return m_dest; }

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

            void setupBackLinks( uint32_t srcBBIndex );

        private:
            wptr< BasicBlock > m_dest;
    };

    class CondBranch
    {
        public:
41
42
43
44
45
46
47


48
49
50
51
52
53
54
55
56
                return IsValueConstantOrExecutable( m_cond );
            }

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



        private:
            ir::Value m_cond;
            wptr< BasicBlock > m_trueDest;
            wptr< BasicBlock > m_falseDest;
    };
}

#endif







>
>









43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
                return IsValueConstantOrExecutable( m_cond );
            }

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

            void setupBackLinks( uint32_t srcBBIndex );

        private:
            ir::Value m_cond;
            wptr< BasicBlock > m_trueDest;
            wptr< BasicBlock > m_falseDest;
    };
}

#endif