diff options
| author | Robin Dapp <rdapp@ventanamicro.com> | 2025-11-25 10:34:55 +0100 |
|---|---|---|
| committer | Robin Dapp <rdapp@ventanamicro.com> | 2025-12-09 09:54:25 +0100 |
| commit | cee0a9dd2700b9adff64b2d7e1f222671b1b2058 (patch) | |
| tree | d4d5bd09d82a4fb54e5e37389b1af69673a6e82f /libjava/classpath/java/sql | |
| parent | a82f188449c5d6a2382ef5456c9e98a582d5ba11 (diff) | |
| download | gcc-cee0a9dd2700b9adff64b2d7e1f222671b1b2058.zip gcc-cee0a9dd2700b9adff64b2d7e1f222671b1b2058.tar.gz gcc-cee0a9dd2700b9adff64b2d7e1f222671b1b2058.tar.bz2 | |
fold: Elide MASK_LEN_LOAD/STORE with zero length [PR122635].
This patch adds zero-length handling to gimple_fold_partial_store and
gimple_fold_partial_load and unifies them into
gimple_fold_partial_load_store.
It introduces a new function partial_load_store_mask_state that
returns
MASK_ALL_INACTIVE,
MASK_ALL_ACTIVE, or
MASK_UNKNOWN.
This result is used to either replace a load with its else value and
elide a store (when all inactive), turn the load/store into a regular
mem ref (all_active), or do nothing.
PR tree-optimization/122635
gcc/ChangeLog:
* gimple-fold.cc (enum mask_load_store_state): New enum.
(gimple_fold_partial_load_store_mem_ref): Only fold
"all active" loads/stores.
(partial_load_store_mask_state): New function to compute mask
state.
(gimple_fold_partial_load): Remove.
(gimple_fold_partial_load_store): New function.
(gimple_fold_partial_store): Remove.
(gimple_fold_call): Use new function.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/sve/pfalse-store.c: Expect more elided
stores.
* gcc.target/riscv/rvv/autovec/pr122635-1.c: New test.
* gcc.target/riscv/rvv/autovec/pr122635-2.c: New test.
* gcc.target/powerpc/p9-vec-length-epil-8.c: Expect two lxvl
less.
Diffstat (limited to 'libjava/classpath/java/sql')
0 files changed, 0 insertions, 0 deletions
