-#if 0
-static void decide_start_workset2(const ir_node *block)
-{
- int arity;
- workset_t **pred_worksets;
- int p;
- int i;
- int len;
-
- /* check if all predecessors are known */
- arity = get_irn_arity(block);
- pred_worksets = alloca(sizeof(pred_worksets[0]) * arity);
- for (i = 0; i < arity; ++i) {
- ir_node *pred_block = get_Block_cfgpred_block(block, i);
- block_info_t *pred_info = get_block_info(pred_block);
-
- if (pred_info == NULL) {
- /* not all predecessors known, use decide_start_workset */
- decide_start_workset(block);
- return;
- }
-
- pred_worksets[i] = pred_info->end_workset;
- }
-
- /* we construct a new workset */
- workset_clear(ws);
-
- /* take values live in all pred blocks */
- len = workset_get_length(pred_worksets[0]);
- for (p = 0; p < len; ++p) {
- const loc_t *l = &pred_worksets[0]->vals[p];
- ir_node *value;
- bool spilled = false;
-
- if (USES_IS_INFINITE(l->time))
- continue;
-
- /* value available in all preds? */
- value = l->node;
- for (i = 1; i < arity; ++i) {
- bool found = false;
- workset_t *p_workset = pred_worksets[i];
- int p_len = workset_get_length(p_workset);
- int p_i;
-
- for (p_i = 0; p_i < p_len; ++p_i) {
- const loc_t *p_l = &p_workset->vals[p_i];
- if (p_l->node != value)
- continue;
-
- found = true;
- if (p_l->spilled)
- spilled = true;
- break;
- }
-
- if (!found)
- break;
- }
-
- /* it was available in all preds */
- if (i >= arity) {
- workset_insert(ws, value, spilled);
- }
- }
-
- /* Copy the best ones from starters to start workset */
- ws_count = MIN(ARR_LEN(starters), n_regs);
- workset_bulk_fill(ws, ws_count, starters);
-}
-#endif
-