+/*
+ * Copyright (C) 1995-2007 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 Implements a list scheduler for the MRIS algorithm.
+ * @author Sebastian Hack
+ * @date 04.04.2006
+ * @version $Id$
+ *
* Implements a list scheduler for the MRIS algorithm in:
* Govindarajan, Yang, Amaral, Zhang, Gao
* Minimum Register Instruction Sequencing to Reduce Register Spills
* in out-of-order issue superscalar architectures
- * @author Sebastian Hack
- * @date 04.04.2006
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#include "irgwalk.h"
#include "irtools.h"
#include "irbitset.h"
-
#include "height.h"
#include "benode_t.h"
#include "beirg.h"
struct _mris_env_t {
- ir_phase ph;
+ ir_phase ph;
heights_t *heights;
const arch_env_t *aenv;
ir_graph *irg;
static void *mris_irn_data_init(ir_phase *ph, ir_node *irn, void *data)
{
mris_irn_t *mi = data ? data : phase_alloc(ph, sizeof(mi[0]));
+ (void) irn;
memset(mi, 0, sizeof(mi[0]));
INIT_LIST_HEAD(&mi->lineage_list);
return mi;