Differences From Artifact [f7d51a0a45]:
- File bs/cir/binaryop.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: 1215)
To Artifact [1cb2155fd4]:
- File bs/cir/binaryop.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: 1152)
| ︙ | ︙ | |||
13 14 15 16 17 18 19 |
{}
const auto& lhs() const { return m_lhs; }
const auto& rhs() const { return m_rhs; }
bool canBeExecuted() const;
bool canBeEagerlyEvaluated() const;
| < | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
{}
const auto& lhs() const { return m_lhs; }
const auto& rhs() const { return m_rhs; }
bool canBeExecuted() const;
bool canBeEagerlyEvaluated() const;
bool operator<( const BinaryOp& rhs ) const
{
if( m_lhs != rhs.m_lhs )
return m_lhs < rhs.m_lhs;
return m_rhs < rhs.m_rhs;
}
|
| ︙ | ︙ |