diff options
author | Martin Jambor <mjambor@suse.cz> | 2016-05-18 18:41:19 +0200 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2016-05-18 18:41:19 +0200 |
commit | 776e4fe2cacf85c639bbf98ffc49da0ea4d996b2 (patch) | |
tree | ea0c61cf669bb09530b2c397848a1956446177e7 | |
parent | 91bb9f80e58963d65a5cd305b438a2d7009cdb09 (diff) | |
download | gcc-776e4fe2cacf85c639bbf98ffc49da0ea4d996b2.zip gcc-776e4fe2cacf85c639bbf98ffc49da0ea4d996b2.tar.gz gcc-776e4fe2cacf85c639bbf98ffc49da0ea4d996b2.tar.bz2 |
Const parameters are always unmodified
2016-05-18 Martin Jambor <mjambor@suse.cz>
PR ipa/69708
* ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
from TREE_READONLY parameters.
From-SVN: r236417
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ipa-prop.c | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3a8e9a7..7924d1f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,12 @@ 2016-05-18 Martin Jambor <mjambor@suse.cz> PR ipa/69708 + * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads + from TREE_READONLY parameters. + +2016-05-18 Martin Jambor <mjambor@suse.cz> + + PR ipa/69708 * cgraph.h (cgraph_indirect_call_info): New field guaranteed_unmodified. * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index 785f2f4..117a025 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -803,6 +803,11 @@ parm_preserved_before_stmt_p (struct ipa_func_body_info *fbi, int index, bool modified = false; ao_ref refd; + tree base = get_base_address (parm_load); + gcc_assert (TREE_CODE (base) == PARM_DECL); + if (TREE_READONLY (base)) + return true; + /* FIXME: FBI can be NULL if we are being called from outside ipa_node_analysis or ipcp_transform_function, which currently happens during inlining analysis. It would be great to extend fbi's lifetime and |