aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range-fold.cc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2022-07-25 16:44:39 +0200
committerAldy Hernandez <aldyh@redhat.com>2022-08-02 14:50:25 +0200
commit5f7e187e7fa4175204dac0d2f9d468d61762c11b (patch)
treed49004bb51a727a6243d455364e35d24acebff8a /gcc/gimple-range-fold.cc
parente9f5b4fa4f2c93ef76e3766b3edabfaebc100741 (diff)
downloadgcc-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