/*
- * Project: libFIRM
- * File name: ir/ana/field_temperature.c
- * Purpose: Compute an estimate of field temperature, i.e., field access heuristic.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 21.7.2004
- * CVS-ID: $Id$
- * Copyright: (c) 2004 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
*/
+/**
+ * @file
+ * @brief Compute an estimate of field temperature, i.e., field access heuristic.
+ * @author Goetz Lindenmaier
+ * @date 21.7.2004
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
+#ifdef INTERPROCEDURAL_VIEW
+
#include <math.h>
#include "field_temperature.h"
#include "irprog_t.h"
#include "entity_t.h"
#include "irgwalk.h"
+#include "error.h"
#include "array.h"
/* The entities that can be accessed by this Sel node. */
int get_Sel_n_accessed_entities(ir_node *sel) {
+ (void) sel;
return 1;
}
ir_entity *get_Sel_accessed_entity(ir_node *sel, int pos) {
+ (void) pos;
return get_Sel_entity(sel);
}
}
double get_type_estimated_mem_consumption_bytes(ir_type *tp) {
+ (void) tp;
assert(0);
return 0.0;
}
case tpo_array: {
long n_elt = DEFAULT_N_ARRAY_ELEMENTS;
assert(get_array_n_dimensions(tp) == 1 && "other not implemented");
- if ((get_irn_op(get_array_lower_bound(tp, 0)) == op_Const) &&
- (get_irn_op(get_array_upper_bound(tp, 0)) == op_Const) ) {
+ if (is_Const(get_array_lower_bound(tp, 0)) &&
+ is_Const(get_array_upper_bound(tp, 0))) {
n_elt = get_array_upper_bound_int(tp, 0) - get_array_upper_bound_int(tp, 0);
}
s = n_elt;
} break;
- default: DDMT(tp); assert(0);
+ default:
+ panic("Unsupported type in get_type_estimated_n_fields %+F", tp);
}
return s;
int elt_s = get_type_estimated_size_bytes(get_array_element_type(tp));
long n_elt = DEFAULT_N_ARRAY_ELEMENTS;
assert(get_array_n_dimensions(tp) == 1 && "other not implemented");
- if ((get_irn_op(get_array_lower_bound(tp, 0)) == op_Const) &&
- (get_irn_op(get_array_upper_bound(tp, 0)) == op_Const) ) {
+ if (is_Const(get_array_lower_bound(tp, 0)) &&
+ is_Const(get_array_upper_bound(tp, 0))) {
n_elt = get_array_upper_bound_int(tp, 0) - get_array_lower_bound_int(tp, 0);
}
s = n_elt * elt_s;
break;
}
- default: DDMT(tp); assert(0);
+ default: assert(0);
}
return s;
double n_loads = 0;
for (i = 0; i < n_acc; ++i) {
ir_node *acc = get_entity_access(ent, i);
- if (get_irn_op(acc) == op_Load) {
+ if (is_Load(acc)) {
n_loads += get_irn_final_cost(acc);
}
}
double n_stores = 0;
for (i = 0; i < n_acc; ++i) {
ir_node *acc = get_entity_access(ent, i);
- if (get_irn_op(acc) == op_Store)
+ if (is_Store(acc))
n_stores += get_irn_final_cost(acc);
}
return n_stores;
double n_calls = 0;
for (i = 0; i < n_acc; ++i) {
ir_node *acc = get_entity_access(ent, i);
- if (get_irn_op(acc) == op_Call)
-
+ if (is_Call(acc))
n_calls += get_irn_final_cost(acc);
}
return n_calls;
return n_calls;
}
+#if 0
+/* Move this to the jack compiler */
+
/* ------------------------------------------------------------------------- */
/* Auxiliary */
/* ------------------------------------------------------------------------- */
return is_jack_rts_name(name);
}
+
+#endif /* if 0 */
+
+#endif