aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-prop.h
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2023-05-18 11:17:57 +0200
committerAldy Hernandez <aldyh@redhat.com>2023-06-27 11:25:48 +0200
commit065cc8767828c0257f5651579f36e4bca0937d73 (patch)
tree86e10c11e58385fb54895ebb50e2f7c56a27e1d2 /gcc/ipa-prop.h
parentebe7c586f62b1c5218b19c3c6853163287b3c887 (diff)
downloadgcc-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.h5
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