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(-)
>