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
|