aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/gnu/java/beans/decoder
diff options
context:
space:
mode:
authorRobin Dapp <rdapp@ventanamicro.com>2025-11-25 10:34:55 +0100
committerRobin Dapp <rdapp@ventanamicro.com>2025-12-09 09:54:25 +0100
commitcee0a9dd2700b9adff64b2d7e1f222671b1b2058 (patch)
treed4d5bd09d82a4fb54e5e37389b1af69673a6e82f /libjava/classpath/gnu/java/beans/decoder
parenta82f188449c5d6a2382ef5456c9e98a582d5ba11 (diff)
downloadgcc-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/gnu/java/beans/decoder')
0 files changed, 0 insertions, 0 deletions