+ ir_graph *rem = current_ir_graph;
+ ir_node *res;
+
+ current_ir_graph = irg;
+ res = new_bd_Block(db, arity, in);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Block */
+
+ir_node *
+new_rd_Start(dbg_info *db, ir_graph *irg, ir_node *block)
+{
+ ir_graph *rem = current_ir_graph;
+ ir_node *res;
+
+ current_ir_graph = irg;
+ res = new_bd_Start(db, block);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Start */
+
+ir_node *
+new_rd_End(dbg_info *db, ir_graph *irg, ir_node *block)
+{
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = rem;
+ res = new_bd_End(db, block);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_End */
+
+/* Creates a Phi node with all predecessors. Calling this constructor
+ is only allowed if the corresponding block is mature. */
+ir_node *
+new_rd_Phi(dbg_info *db, ir_graph *irg, ir_node *block, int arity, ir_node **in, ir_mode *mode)
+{
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Phi(db, block,arity, in, mode);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Phi */
+
+ir_node *
+new_rd_Const_type(dbg_info *db, ir_graph *irg, ir_node *block, ir_mode *mode, tarval *con, ir_type *tp)
+{
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Const_type(db, block, mode, con, tp);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Const_type */
+
+ir_node *
+new_rd_Const(dbg_info *db, ir_graph *irg, ir_node *block, ir_mode *mode, tarval *con)
+{
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Const_type(db, block, mode, con, firm_unknown_type);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Const */
+
+ir_node *
+new_rd_Const_long(dbg_info *db, ir_graph *irg, ir_node *block, ir_mode *mode, long value)
+{
+ return new_rd_Const(db, irg, block, mode, new_tarval_from_long(value, mode));
+} /* new_rd_Const_long */
+
+ir_node *
+new_rd_Id(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *val, ir_mode *mode)
+{
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Id(db, block, val, mode);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Id */
+
+ir_node *
+new_rd_Proj(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *arg, ir_mode *mode,
+ long proj)
+{
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Proj(db, block, arg, mode, proj);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_Proj */
+
+ir_node *
+new_rd_defaultProj(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *arg,
+ long max_proj)
+{
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_defaultProj(db, block, arg, max_proj);
+ current_ir_graph = rem;
+
+ return res;
+} /* new_rd_defaultProj */
+
+ir_node *
+new_rd_Conv(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *op, ir_mode *mode)
+{
+ ir_node *res;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+ res = new_bd_Conv(db, block, op, mode, 0);
+ current_ir_graph = rem;