- phis = be_ssa_construction(be_get_birg_dom_front(birg),
- be_get_birg_liveness(birg),
- info->value,
- ARR_LEN(info->reloads), info->reloads,
- NULL, 1);
+
+ be_ssa_construction_init(&senv, birg);
+ if(sched_is_scheduled(info->value))
+ be_ssa_construction_add_copy(&senv, info->value);
+ be_ssa_construction_add_copies(&senv,
+ info->reloads, ARR_LEN(info->reloads));
+ be_ssa_construction_fix_users(&senv, info->value);
+
+ if(lv != NULL) {
+ be_ssa_construction_update_liveness_phis(&senv, lv);
+
+ be_liveness_update(lv, info->value);
+ len = ARR_LEN(info->reloads);
+ for(i = 0; i < len; ++i) {
+ ir_node *reload = info->reloads[i];
+ be_liveness_update(lv, reload);
+ }
+ }
+
+ phis = be_ssa_construction_get_new_phis(&senv);