diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2021-07-16 11:42:14 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2021-07-16 20:27:10 -0400 |
commit | 704e8a825c78b9a8424c291509413bbb48e602c7 (patch) | |
tree | 8f2b7e49da176c3ec9af9b0124e45dda8e1dca1b /gcc/tree-ssa-structalias.c | |
parent | 87277b6a04486b606761b86dbcfbc9a4b6871f4c (diff) | |
download | gcc-704e8a825c78b9a8424c291509413bbb48e602c7.zip gcc-704e8a825c78b9a8424c291509413bbb48e602c7.tar.gz gcc-704e8a825c78b9a8424c291509413bbb48e602c7.tar.bz2 |
Add wi_fold_in_parts.
range-ops uses wi_fold to individually fold subranges one at a time and
then combined them. This patch first calls wi_fold_in_parts which checks if
one of the subranges is small, and if so, further splits that subrange
into constants.
gcc/
PR tree-optimization/96542
* range-op.cc (range_operator::wi_fold_in_parts): New.
(range_operator::fold_range): Call wi_fold_in_parts.
(operator_lshift::wi_fold): Fix broken lshift by [0,0].
* range-op.h (wi_fold_in_parts): Add prototype.
gcc/testsuite
* gcc.dg/pr96542.c: New.
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
0 files changed, 0 insertions, 0 deletions