qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 00/46] tcg: Remove in-flight mask data from OptContext


From: Pierrick Bouvier
Subject: Re: [PATCH 00/46] tcg: Remove in-flight mask data from OptContext
Date: Tue, 17 Dec 2024 12:11:57 -0800
User-agent: Mozilla Thunderbird

On 12/10/24 07:23, Richard Henderson wrote:
The desire is to start re-using some of the fold_* functions
while lowering or simplifying operations during tcg_optmize.

Many of these fold_* functions set z_mask, s_mask, and a_mask,
which hang around until the end of the tcg_optmize loop and
are applied by finish_folding.  This disconnect between set
and apply is a problem -- we would no longer be applying the
masks to the correct opcode.


A general question on this:

Where do the s_ (sign?) and a_ (?) names comes from?
Reading the description of those struct members, I can't really connect to their names, except for z_mask.

Fix this by making the masks local variables, passed down to
be applied immediately to the opcode being processed.


r~


Richard Henderson (46):
   tcg/optimize: Split out finish_bb, finish_ebb
   tcg/optimize: Copy mask writeback to fold_masks
   tcg/optimize: Add fold_masks_zsa, fold_masks_zs, fold_masks_z
   tcg/optimize: Use finish_folding in fold_add, fold_add_vec
   tcg/optimize: Use finish_folding in fold_addsub2
   tcg/optimize: Use fold_masks_zsa in fold_and
   tcg/optimize: Use fold_masks_zsa in fold_andc
   tcg/optimize: Use fold_masks_zs in fold_bswap
   tcg/optimize: Use fold_masks_z in fold_count_zeros
   tcg/optimize: Use fold_masks_z in fold_ctpop
   tcg/optimize: Use fold_and and fold_masks_z in fold_deposit
   tcg/optimize: Use finish_folding in fold_divide
   tcg/optimize: Use finish_folding in fold_dup, fold_dup2
   tcg/optimize: Use fold_masks_zs in fold_eqv
   tcg/optimize: Use fold_masks_zsa in fold_extract
   tcg/optimize: Use finish_folding in fold_extract2
   tcg/optimize: Use fold_masks_zsa in fold_exts
   tcg/optimize: Use fold_masks_zsa in fold_extu
   tcg/optimize: Use fold_masks_zs in fold_movcond
   tcg/optimize: Use finish_folding in fold_mul*
   tcg/optimize: Use fold_masks_zs in fold_nand
   tcg/optimize: Use fold_masks_z in fold_neg_no_const
   tcg/optimize: Use fold_masks_zs in fold_nor
   tcg/optimize: Use fold_masks_zs in fold_not
   tcg/optimize: Use fold_masks_zs in fold_or
   tcg/optimize: Use fold_masks_zs in fold_orc
   tcg/optimize: Use fold_masks_zs in fold_qemu_ld
   tcg/optimize: Return true from fold_qemu_st, fold_tcg_st
   tcg/optimize: Use finish_folding in fold_remainder
   tcg/optimize: Distinguish simplification in fold_setcond_zmask
   tcg/optimize: Use fold_masks_z in fold_setcond
   tcg/optimize: Use fold_masks_zs in fold_negsetcond
   tcg/optimize: Use fold_masks_z in fold_setcond2
   tcg/optimize: Use finish_folding in fold_cmp_vec
   tcg/optimize: Use finish_folding in fold_cmpsel_vec
   tcg/optimize: Use fold_masks_zsa in fold_sextract
   tcg/optimize: Use fold_masks_zs in fold_shift
   tcg/optimize: Use finish_folding in fold_sub, fold_sub_vec
   tcg/optimize: Use fold_masks_zs in fold_tcg_ld
   tcg/optimize: Use finish_folding in fold_tcg_ld_memcopy
   tcg/optimize: Use fold_masks_zs in fold_xor
   tcg/optimize: Use finish_folding in fold_bitsel_vec
   tcg/optimize: Use finish_folding as default in tcg_optimize
   tcg/optimize: Remove [zsa]_mask from OptContext
   tcg/optimize: Move fold_bitsel_vec into alphabetic sort
   tcg/optimize: Move fold_cmp_vec, fold_cmpsel_vec into alphabetic sort

  tcg/optimize.c | 597 ++++++++++++++++++++++++++-----------------------
  1 file changed, 315 insertions(+), 282 deletions(-)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]