aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-param-manipulation.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2019-12-18 14:21:51 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2019-12-18 13:21:51 +0000
commitc7ac9a0c7e3916f192ad41227e16238fd1fa2fbf (patch)
treee68d5f0c5a6cebf9e7164a3aff5b36fbb475d67b /gcc/ipa-param-manipulation.c
parent1ad431f95c200fe4d1eccab9cd5487087adc2bd8 (diff)
downloadgcc-c7ac9a0c7e3916f192ad41227e16238fd1fa2fbf.zip
gcc-c7ac9a0c7e3916f192ad41227e16238fd1fa2fbf.tar.gz
gcc-c7ac9a0c7e3916f192ad41227e16238fd1fa2fbf.tar.bz2
ipa-param-manipulation.h (get_original_index): Declare.
* ipa-param-manipulation.h (get_original_index): Declare. * ipa-param-manipulation.c (ipa_param_adjustments::get_original_index): New member function. * ipa-prop.c (ipcp_get_parm_bits): New function. * ipa-prop.h (ipcp_get_parm_bits): Declare. * tree-ssa-ccp.c: Include cgraph.h, alloc-pool.h, symbol-summary.h, ipa-utils.h and ipa-prop.h (get_default_value): Use ipcp_get_parm_bits. * gcc.dg/ipa/ipa-bit-cp.c: New testcase. * gcc.dg/ipa/ipa-bit-cp-1.c: New testcase. * gcc.dg/ipa/ipa-bit-cp-2.c: New testcase. Co-Authored-By: Martin Jambor <mjambor@suse.cz> From-SVN: r279523
Diffstat (limited to 'gcc/ipa-param-manipulation.c')
-rw-r--r--gcc/ipa-param-manipulation.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ipa-param-manipulation.c b/gcc/ipa-param-manipulation.c
index 28ac2b8..b756b5d 100644
--- a/gcc/ipa-param-manipulation.c
+++ b/gcc/ipa-param-manipulation.c
@@ -324,6 +324,18 @@ ipa_param_adjustments::get_updated_indices (vec<int> *new_indices)
}
}
+/* Return the original index for the given new parameter index. Return a
+ negative number if not available. */
+
+int
+ipa_param_adjustments::get_original_index (int newidx)
+{
+ const ipa_adjusted_param *adj = &(*m_adj_params)[newidx];
+ if (adj->op != IPA_PARAM_OP_COPY)
+ return -1;
+ return adj->base_index;
+}
+
/* Return true if the first parameter (assuming there was one) survives the
transformation intact and remains the first one. */