* @file
* @brief read/write analyze of graph argument, which have mode reference.
* @author Beyhan Veliev
- * @version $Id$
*/
#include "config.h"
} else {
ir_entity *meth_ent;
- if (is_Global(ptr)) {
- meth_ent = get_Global_entity(ptr);
+ if (is_SymConst_addr_ent(ptr)) {
+ meth_ent = get_SymConst_entity(ptr);
for (p = get_Call_n_params(succ) - 1; p >= 0; --p) {
if (get_Call_param(succ, p) == arg) {
}
} else if (is_Sel(ptr) && get_irp_callee_info_state() == irg_callee_info_consistent) {
/* is be a polymorphic call but callee information is available */
- int i, n_params = get_Call_n_params(succ);
+ int n_params = get_Call_n_params(succ);
+ int c;
/* simply look into ALL possible callees */
- for (i = get_Call_n_callees(succ) - 1; i >= 0; --i) {
- meth_ent = get_Call_callee(succ, i);
+ for (c = get_Call_n_callees(succ) - 1; c >= 0; --c) {
+ meth_ent = get_Call_callee(succ, c);
/* unknown_entity is used to signal that we don't know what is called */
- if (meth_ent == unknown_entity) {
+ if (is_unknown_entity(meth_ent)) {
bits |= ptr_access_all;
break;
}
#endif
}
-/**
- * Analyze how pointer arguments of a given
- * ir graph are accessed.
- *
- * @param irg The ir graph to analyze.
- */
void analyze_irg_args(ir_graph *irg)
{
ir_entity *ent;
analyze_ent_args(ent);
}
-/*
- * Compute for a method with pointer parameter(s)
- * if they will be read or written.
- */
ptr_access_kind get_method_param_access(ir_entity *ent, size_t pos)
{
#ifndef NDEBUG
}
}
-/*
- * Returns for a method the 'weight' that every parameter
- * has on optimization possibility. Higher values allows
- * higher optimization with procedure cloning.
- *
- * The values are calculation on demand only.
- *
- * @param ent the entity to analyze
- * @param pos the argument number
- *
- * @return the parameter weight or null_weight if pos is greater
- * than the number of arguments.
- */
unsigned get_method_param_weight(ir_entity *ent, size_t pos)
{
if (ent->attr.mtd_attr.param_weight) {
return null_weight;
}
-/**
- * Analyze argument's weight of a given
- * ir graph.
- *
- * @param irg The ir graph to analyze.
- */
void analyze_irg_args_weight(ir_graph *irg)
{
ir_entity *entity = get_irg_entity(irg);