From df693a5d118df087acd39bdf13ad1b35473bbf15 Mon Sep 17 00:00:00 2001 From: jamborm Date: Thu, 9 Dec 2010 15:27:14 +0000 Subject: [PATCH] 2010-12-09 Martin Jambor * ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the zero is the first phi parameter. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167642 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/ipa-prop.c | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7c380d35f03..839ffc6a161 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2010-12-09 Martin Jambor + * ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the + zero is the first phi parameter. + +2010-12-09 Martin Jambor + * ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type. * ipa-prop.c (ipa_modify_call_arguments): Use it. * tree-sra.c (splice_param_accesses): Test that all accesses have the diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index 0e5a4b19d18..af5b2617dbc 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -460,11 +460,15 @@ compute_complex_ancestor_jump_func (struct ipa_node_params *info, tree tmp, parm, expr; int index, i; - if (gimple_phi_num_args (phi) != 2 - || !integer_zerop (PHI_ARG_DEF (phi, 1))) + if (gimple_phi_num_args (phi) != 2) return; - tmp = PHI_ARG_DEF (phi, 0); + if (integer_zerop (PHI_ARG_DEF (phi, 1))) + tmp = PHI_ARG_DEF (phi, 0); + else if (integer_zerop (PHI_ARG_DEF (phi, 0))) + tmp = PHI_ARG_DEF (phi, 1); + else + return; if (TREE_CODE (tmp) != SSA_NAME || SSA_NAME_IS_DEFAULT_DEF (tmp) || !POINTER_TYPE_P (TREE_TYPE (tmp)) -- 2.11.0