bescripts: Remove unused execution unit specification.
[libfirm] / ir / be / bessaconstr.h
index ab08c76..951edc8 100644 (file)
  * @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
  * to their closest copy while introducing phis as necessary.
  *
  * Algorithm: Mark all blocks in the iterated dominance frontiers of the value
- * and it's copies. Link the copies ordered by dominance to the blocks.  Then
+ * and its copies. Link the copies ordered by dominance to the blocks.  Then
  * we search for each use all definitions in the current block, if none is
  * found, then we search one in the immediate dominator. If we are in a block
  * of the dominance frontier, create a phi and do the same search for all
 #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;
-       waitq                     *worklist;
-       const ir_nodeset_t        *ignore_uses;
-       ir_node                   **new_phis;
-       int                       iterated_domfront_calculated;
+       ir_graph                    *irg;
+       ir_mode                     *mode;
+       const arch_register_req_t   *phi_req;
+       waitq                       *worklist;
+       ir_node                    **new_phis;
+       bool                         iterated_domfront_calculated;
+       ir_nodemap                   infos;
+       struct obstack               obst;
 } be_ssa_construction_env_t;
 
 /**
  * Initializes an SSA construction environment.
  *
- * @param env    an SSA empty construction environment
- * @param birg
+ * @param env    an empty SSA construction environment
+ * @param irg    the graph
  */
-void be_ssa_construction_init(be_ssa_construction_env_t *env, be_irg_t *birg);
+void be_ssa_construction_init(be_ssa_construction_env_t *env, ir_graph *irg);
 
 void be_ssa_construction_add_copy(be_ssa_construction_env_t *env,
                                   ir_node *value);
@@ -81,11 +82,8 @@ void be_ssa_construction_add_copy(be_ssa_construction_env_t *env,
 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
+ * Reconstructs the SSA form for all users of node @p node
  */
 void be_ssa_construction_fix_users(be_ssa_construction_env_t *env,
                                    ir_node *node);
@@ -103,7 +101,7 @@ void be_ssa_construction_update_liveness_phis(be_ssa_construction_env_t *env,
 ir_node **be_ssa_construction_get_new_phis(be_ssa_construction_env_t *env);
 
 /**
- * Destroys an ssa construction environment.
+ * Destroys an SSA construction environment.
  */
 void be_ssa_construction_destroy(be_ssa_construction_env_t *env);