diff options
author | Martin Jambor <mjambor@suse.cz> | 2017-01-09 19:26:37 +0100 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2017-01-09 19:26:37 +0100 |
commit | a5e14a42da5eba45cc6528e678ba7e191b9c6cd8 (patch) | |
tree | 782daa89542faa2fad17e82610e4d4d431bca277 /gcc/ipa-prop.h | |
parent | a7765de8ef7653d7e899b24ed7bb3819e5f90f29 (diff) | |
download | gcc-a5e14a42da5eba45cc6528e678ba7e191b9c6cd8.zip gcc-a5e14a42da5eba45cc6528e678ba7e191b9c6cd8.tar.gz gcc-a5e14a42da5eba45cc6528e678ba7e191b9c6cd8.tar.bz2 |
[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.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h index 341d9db..c9a69ab 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 |