+static int loc_compare(const void *a, const void *b)
+{
+ const loc_t *p = (const loc_t*)a;
+ const loc_t *q = (const loc_t*)b;
+ return p->time - q->time;
+}
+
+static void workset_sort(workset_t *workset)
+{
+ qsort(workset->vals, workset->len, sizeof(workset->vals[0]), loc_compare);
+}
+
+static inline unsigned workset_get_time(const workset_t *workset, unsigned idx)
+{
+ return workset->vals[idx].time;
+}
+
+static inline void workset_set_time(workset_t *workset, unsigned idx,
+ unsigned time)
+{
+ workset->vals[idx].time = time;
+}
+
+static inline unsigned workset_get_length(const workset_t *workset)
+{
+ return workset->len;
+}
+
+static inline void workset_set_length(workset_t *workset, unsigned len)
+{
+ workset->len = len;
+}
+
+static inline ir_node *workset_get_val(const workset_t *workset, unsigned idx)
+{
+ return workset->vals[idx].node;
+}
+