diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2022-07-25 16:44:39 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2022-08-02 14:50:25 +0200 |
commit | 5f7e187e7fa4175204dac0d2f9d468d61762c11b (patch) | |
tree | d49004bb51a727a6243d455364e35d24acebff8a /gcc/gimple-range-fold.cc | |
parent | e9f5b4fa4f2c93ef76e3766b3edabfaebc100741 (diff) | |
download | gcc-5f7e187e7fa4175204dac0d2f9d468d61762c11b.zip gcc-5f7e187e7fa4175204dac0d2f9d468d61762c11b.tar.gz gcc-5f7e187e7fa4175204dac0d2f9d468d61762c11b.tar.bz2 |
Implement streamer for frange.
This patch Allows us to export floating point ranges into the SSA name
(SSA_NAME_RANGE_INFO).
[Richi, in PR24021 you suggested that match.pd could use global float
ranges, because it would generally not invoke ranger. This patch
implements the boiler plate to save the frange globally.]
[Jeff, we've also been talking in parallel of using NAN knowledge
during expansion to RTL. This patch will provide the NAN bits in the
SSA name.]
Since frange's currently implementation is just a shell, with no
actual endpoints, frange_storage_slot only contains frange_props which
fits inside a byte. When we have endpoints, y'all can decide if it's
worth saving them, or if the NAN/etc bits are good enough.
gcc/ChangeLog:
* tree-core.h (struct tree_ssa_name): Add frange_info and
reshuffle the rest.
* value-range-storage.cc (vrange_storage::alloc_slot): Add case
for frange.
(vrange_storage::set_vrange): Same.
(vrange_storage::get_vrange): Same.
(vrange_storage::fits_p): Same.
(frange_storage_slot::alloc_slot): New.
(frange_storage_slot::set_frange): New.
(frange_storage_slot::get_frange): New.
(frange_storage_slot::fits_p): New.
* value-range-storage.h (class frange_storage_slot): New.
Diffstat (limited to 'gcc/gimple-range-fold.cc')
0 files changed, 0 insertions, 0 deletions