+ size = get_type_size_bytes(tp);
+ if (size > env->max_size)
+ return;
+
+ /* ok, link it in */
+ entry = OALLOC(&env->obst, entry_t);
+ entry->copyb = irn;
+ INIT_LIST_HEAD(&entry->list);
+ set_irn_link(irn, entry);
+ list_add_tail(&entry->list, &env->list);
+}
+
+void lower_CopyB(ir_graph *irg, unsigned max_size, unsigned native_mode_bytes)
+{
+ walk_env_t env;
+ entry_t *entry;
+ ir_graph *rem = current_ir_graph;
+
+ current_ir_graph = irg;
+
+ obstack_init(&env.obst);
+ env.max_size = max_size;
+ INIT_LIST_HEAD(&env.list);
+ irg_walk_graph(irg, NULL, find_copyb_nodes, &env);
+
+ list_for_each_entry(entry_t, entry, &env.list, list) {
+ lower_copyb_nodes(entry->copyb, native_mode_bytes);
+ }