Ping.
On 6/3/25 01:08, Richard Henderson wrote:
We already track and use known 0's; do the same for 1's.
This actually simplifies some of the logical operations,
where before required checking for a constant value.
Changes for v2:
- Some simplifications suggested by Paolo.
- Merge affected bit handling into fold_masks_zosa.
There's an optimization ordering preference for
1) constant result
2) copy result
3) computed result
Having fold_affected_mask separate performed 2 before 1.
- Rearrange the and->extract optimization, because it
would perform 3 before 1 and 2.
r~
Richard Henderson (27):
tcg/optimize: Introduce arg_const_val
tcg/optimize: Add one's mask to TempOptInfo
tcg/optimize: Introduce fold_masks_zosa
tcg/optimize: Build and use o_bits in fold_and
tcg/optimize: Build and use o_bits in fold_andc
tcg/optimize: Build and use z_bits and o_bits in fold_eqv
tcg/optimize: Build and use z_bits and o_bits in fold_nand
tcg/optimize: Build and use z_bits and o_bits in fold_nor
tcg/optimize: Build and use z_bits and o_bits in fold_not
tcg/optimize: Build and use one and affected bits in fold_or
tcg/optimize: Build and use zero, one and affected bits in fold_orc
tcg/optimize: Build and use o_bits in fold_xor
tcg/optimize: Build and use o_bits in fold_bswap
tcg/optimize: Build and use o_bits in fold_deposit
tcg/optimize: Build and use o_bits in fold_extract
tcg/optimize: Build and use z_bits and o_bits in fold_extract2
tcg/optimize: Build and use o_bits in fold_exts
tcg/optimize: Build and use o_bits in fold_extu
tcg/optimize: Build and use o_bits in fold_movcond
tcg/optimize: Build and use o_bits in fold_sextract
tcg/optimize: Build and use o_bits in fold_shift
tcg/optimize: Use fold_and in do_constant_folding_cond[12]
tcg/optimize: Fold and to extract during optimize
tcg/optimize: Simplify fold_and constant checks
tcg/optimize: Simplify fold_andc constant checks
tcg/optimize: Simplify fold_orc constant checks
tcg/optimize: Simplify fold_eqv constant checks
tcg/optimize.c | 456 +++++++++++++++++++++++++++++--------------------
1 file changed, 274 insertions(+), 182 deletions(-)