aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-prop.h
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2017-01-09 19:26:37 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2017-01-09 19:26:37 +0100
commita5e14a42da5eba45cc6528e678ba7e191b9c6cd8 (patch)
tree782daa89542faa2fad17e82610e4d4d431bca277 /gcc/ipa-prop.h
parenta7765de8ef7653d7e899b24ed7bb3819e5f90f29 (diff)
[PR 78365] Prudent type handling in IPA VR-prop
2017-01-09 Martin Jambor <mjambor@suse.cz> PR ipa/78365 PR ipa/78599 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr. * ipa-cp.c (ipa_vr_operation_and_type_effects): New function. (propagate_vr_accross_jump_function): Use the above function for all value range computations for pass-through jump functions and type converasion from explicit value range values. (ipcp_propagate_stage): Do not attempt to deduce types of formal parameters from TYPE_ARG_TYPES. * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace. (ipa_write_node_info): Stream type of the actual argument. (ipa_read_node_info): Likewise. Also remove trailing whitespace. testsuite/ * gcc.dg/torture/pr78365.c: New test. From-SVN: r244232
Diffstat (limited to 'gcc/ipa-prop.h')
-rw-r--r--gcc/ipa-prop.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h
index 341d9db6c63..c9a69ab1f53 100644
--- a/gcc/ipa-prop.h
+++ b/gcc/ipa-prop.h
@@ -178,9 +178,10 @@ struct GTY (()) ipa_jump_func
/* Information about zero/non-zero bits. */
struct ipa_bits bits;
- /* Information about value range. */
- bool vr_known;
+ /* Information about value range, containing valid data only when vr_known is
+ true. */
value_range m_vr;
+ bool vr_known;
enum jump_func_type type;
/* Represents a value of a jump function. pass_through is used only in jump