diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2024-03-20 06:34:26 +0100 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2024-05-04 10:25:50 +0200 |
commit | a7f1285380029d2928d61e61032c1948ccabc495 (patch) | |
tree | dc77b898c88b067aa178265bb1667be2d09b9b56 /gcc | |
parent | 64993a89ad75814ab69addade1b2c0020a180f41 (diff) | |
download | gcc-a7f1285380029d2928d61e61032c1948ccabc495.zip gcc-a7f1285380029d2928d61e61032c1948ccabc495.tar.gz gcc-a7f1285380029d2928d61e61032c1948ccabc495.tar.bz2 |
Add streaming support for prange.
gcc/ChangeLog:
* data-streamer-in.cc (streamer_read_value_range): Add prange support.
* data-streamer-out.cc (streamer_write_vrange): Same.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/data-streamer-in.cc | 12 | ||||
-rw-r--r-- | gcc/data-streamer-out.cc | 10 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/data-streamer-in.cc b/gcc/data-streamer-in.cc index 3a0d3c6..12cb10e 100644 --- a/gcc/data-streamer-in.cc +++ b/gcc/data-streamer-in.cc @@ -268,6 +268,18 @@ streamer_read_value_range (class lto_input_block *ib, data_in *data_in, } return; } + if (is_a <prange> (vr)) + { + prange &r = as_a <prange> (vr); + wide_int lb = streamer_read_wide_int (ib); + wide_int ub = streamer_read_wide_int (ib); + r.set (type, lb, ub); + wide_int value = streamer_read_wide_int (ib); + wide_int mask = streamer_read_wide_int (ib); + irange_bitmask bm (value, mask); + r.update_bitmask (bm); + return; + } gcc_unreachable (); } diff --git a/gcc/data-streamer-out.cc b/gcc/data-streamer-out.cc index 07cc6bd..c237e30 100644 --- a/gcc/data-streamer-out.cc +++ b/gcc/data-streamer-out.cc @@ -450,6 +450,16 @@ streamer_write_vrange (struct output_block *ob, const vrange &v) } return; } + if (is_a <prange> (v)) + { + const prange &r = as_a <prange> (v); + streamer_write_wide_int (ob, r.lower_bound ()); + streamer_write_wide_int (ob, r.upper_bound ()); + irange_bitmask bm = r.get_bitmask (); + streamer_write_wide_int (ob, bm.value ()); + streamer_write_wide_int (ob, bm.mask ()); + return; + } gcc_unreachable (); } |