diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2023-05-18 11:17:57 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2023-06-27 11:25:48 +0200 |
commit | 065cc8767828c0257f5651579f36e4bca0937d73 (patch) | |
tree | 86e10c11e58385fb54895ebb50e2f7c56a27e1d2 /gcc/ipa-prop.h | |
parent | ebe7c586f62b1c5218b19c3c6853163287b3c887 (diff) | |
download | gcc-065cc8767828c0257f5651579f36e4bca0937d73.zip gcc-065cc8767828c0257f5651579f36e4bca0937d73.tar.gz gcc-065cc8767828c0257f5651579f36e4bca0937d73.tar.bz2 |
Convert ipa_jump_func to use ipa_vr instead of a value_range.
This patch converts the ipa_jump_func code to use the type agnostic
ipa_vr suitable for GC instead of value_range which is integer specific.
I've disabled the range cacheing to simplify the patch for review, but
it is handled in the next patch in the series.
gcc/ChangeLog:
* ipa-cp.cc (ipa_vr_operation_and_type_effects): New.
* ipa-prop.cc (ipa_get_value_range): Adjust for ipa_vr.
(ipa_set_jfunc_vr): Take a range.
(ipa_compute_jump_functions_for_edge): Pass range to
ipa_set_jfunc_vr.
(ipa_write_jump_function): Call streamer write helper.
(ipa_read_jump_function): Call streamer read helper.
* ipa-prop.h (class ipa_vr): Change m_vr to an ipa_vr.
Diffstat (limited to 'gcc/ipa-prop.h')
-rw-r--r-- | gcc/ipa-prop.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h index 9b7fee4..410c951 100644 --- a/gcc/ipa-prop.h +++ b/gcc/ipa-prop.h @@ -325,6 +325,9 @@ private: friend void gt_pch_nx (struct ipa_vr &); friend void gt_ggc_mx (struct ipa_vr &); friend void gt_pch_nx (struct ipa_vr *, gt_pointer_operator, void *); + friend void gt_ggc_mx_ipa_vr (void *); + friend void gt_pch_nx_ipa_vr (void*); + friend void gt_pch_p_6ipa_vr(void*, void*, gt_pointer_operator, void*); vrange_storage *m_storage; tree m_type; @@ -347,7 +350,7 @@ struct GTY (()) ipa_jump_func /* Information about value range, containing valid data only when vr_known is true. The pointed to structure is shared betweed different jump functions. Use ipa_set_jfunc_vr to set this field. */ - value_range *m_vr; + ipa_vr *m_vr; enum jump_func_type type; /* Represents a value of a jump function. pass_through is used only in jump |