/*
- * 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.
+ * Copyright (C) 2012 University of Karlsruhe.
*/
/**
* @brief SSA construction for a set of nodes
* @author Sebastian Hack, Daniel Grund, Matthias Braun, Christian Wuerdig
* @date 30.03.2007
- * @version $Id$
*
* The problem: Given a value and a set of "copies" that are known to
* represent the same abstract value, rewire all usages of the original value
#ifndef FIRM_BE_BESSACONSTR_H
#define FIRM_BE_BESSACONSTR_H
+#include <stdbool.h>
#include "firm_types.h"
-#include "bedomfront.h"
#include "irnodeset.h"
#include "belive.h"
#include "bitset.h"
-#include "beirg.h"
#include "pdeq.h"
+#include "irnodemap.h"
+#include "obst.h"
typedef struct be_ssa_construction_env_t {
ir_graph *irg;
- const be_dom_front_info_t *domfronts;
ir_mode *mode;
- const arch_register_class_t *phi_cls;
+ const arch_register_req_t *phi_req;
waitq *worklist;
- const ir_nodeset_t *ignore_uses;
ir_node **new_phis;
- int iterated_domfront_calculated;
+ bool iterated_domfront_calculated;
+ ir_nodemap infos;
+ struct obstack obst;
} be_ssa_construction_env_t;
/**
void be_ssa_construction_add_copies(be_ssa_construction_env_t *env,
ir_node **copies, size_t copies_len);
-void be_ssa_construction_set_ignore_uses(be_ssa_construction_env_t *env,
- const ir_nodeset_t *ignore_uses);
-
/**
* Reconstructs the SSA form for all users of node @p node
*/