Move range allocator code to value-range-storage.*
authorAldy Hernandez <aldyh@redhat.com>
Sun, 3 Jul 2022 13:25:38 +0000 (15:25 +0200)
committerAldy Hernandez <aldyh@redhat.com>
Sun, 3 Jul 2022 15:33:23 +0000 (17:33 +0200)
commit3ae9def08565c36af2dc0bff495545ee1e9db642
tree2dc04b1d77cc6cf291fa183a0c6a74deea50708b
parent17f2e2b77b6610afb8fafd41d0537d3e4429efe0
Move range allocator code to value-range-storage.*

Now that vrange_storage is in its own file, I think it's prudent to
move all the vrange allocator code there since it's all related.
The users of value-range.h do not need to know the implementation
details of the storage facilities.

Tested and benchmarked on x86-64 Linux.

gcc/ChangeLog:

* gimple-range-cache.cc: Include value-range-storage.h.
* gimple-range-cache.h (class block_range_cache): Add "class" to
m_range_allocator.
* gimple-range-edge.cc
(gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
(gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
(gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
* gimple-range-edge.h: Add "class" to m_range_allocator.
* gimple-range-infer.cc
(infer_range_manager::infer_range_manager): Allocate allocator.
(infer_range_manager::~infer_range_manager): Free allocator.
(infer_range_manager::get_nonzero): Dereference allocator.
(infer_range_manager::add_range): Same.
* gimple-range-infer.h (class vrange_allocator): Add "class" to
m_range_allocator.
* value-range-storage.h (class vrange_allocator): Move from
value-range.h.
(class obstack_vrange_allocator): Same.
(class ggc_vrange_allocator): Same.
(vrange_allocator::alloc_vrange): Same.
(vrange_allocator::alloc_irange): Same.
* value-range.h (class vrange_allocator): Move to value-range-storage.h.
(class obstack_vrange_allocator): Same.
(class ggc_vrange_allocator): Same.
gcc/gimple-range-cache.cc
gcc/gimple-range-cache.h
gcc/gimple-range-edge.cc
gcc/gimple-range-edge.h
gcc/gimple-range-infer.cc
gcc/gimple-range-infer.h
gcc/value-range-storage.h
gcc/value-range.h