* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/opt/data_flow_scalar_replace.c
- * Purpose: scalar replacement of arrays and compounds
- * Author: Beyhan Veliev
- * Modified by: Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2005 Universität Karlsruhe
+/**
+ * @file
+ * @brief scalar replacement of arrays and compounds
+ * @author Beyhan Veliev, Michael Beck
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
-#ifdef HAVE_STRING_H
+#include "iroptimize.h"
+
#include <string.h>
-#endif
-#include "data_flow_scalar_replace.h"
#include "irflag_t.h"
#include "irouts.h"
#include "pset.h"
{
const ent_leaves_t *c1 = elt;
const ent_leaves_t *c2 = key;
+ (void) size;
return c1->ent != c2->ent;
}
{
const sels_t *c1 = elt;
const sels_t *c2 = key;
+ (void) size;
return c1->sel != c2->sel;
}
{
const call_access_t *c1 = elt;
const call_access_t *c2 = key;
+ (void) size;
return c1->call != c2->call;
}
{
const path_t *p1 = elt;
const path_t *p2 = key;
+ (void) size;
/* we can use memcmp here, because identical tarvals should have identical addresses */
return memcmp(p1->path, p2->path, p1->path_len * sizeof(p1->path[0]));
* Returns non-zero, if the address of an entity
* represented by a Sel node (or it's successor Sels) is taken.
*/
-static int is_address_taken(ir_node *sel)
+static int is_address_taken_2(ir_node *sel)
{
int i;
case iro_Sel: {
/* Check the Sel successor of Sel */
- int res = is_address_taken(succ);
+ int res = is_address_taken_2(succ);
if (res)
return 1;
/* we can handle arrays, structs and atomic types yet */
if (is_Array_type(ent_type) || is_Struct_type(ent_type) || is_atomic_type(ent_type)) {
- if (is_address_taken(succ)) {
+ if (is_address_taken_2(succ)) {
if (get_entity_link(ent)) /* killing one */
--res;
set_entity_link(ent, ADDRESS_TAKEN);