nir: Move nir_lower_mediump_outputs from ir3
[mesa.git] / src / compiler / nir / nir_worklist.h
index e37690876642b829ceafcbe5051e5f3ffef472ec..36014cc7752470bf0c58acb49482f6c92be7afaa 100644 (file)
@@ -105,8 +105,15 @@ typedef struct {
 static inline nir_instr_worklist *
 nir_instr_worklist_create() {
    nir_instr_worklist *wl = malloc(sizeof(nir_instr_worklist));
-   u_vector_init(&wl->instr_vec, sizeof(struct nir_instr *),
-                 sizeof(struct nir_instr *) * 8);
+   if (!wl)
+      return NULL;
+
+   if (!u_vector_init(&wl->instr_vec, sizeof(struct nir_instr *),
+                      sizeof(struct nir_instr *) * 8)) {
+      free(wl);
+      return NULL;
+   }
+
    return wl;
 }
 
@@ -117,7 +124,7 @@ nir_instr_worklist_length(nir_instr_worklist *wl)
 }
 
 static inline bool
-nir_instr_worklist_empty(nir_instr_worklist *wl)
+nir_instr_worklist_is_empty(nir_instr_worklist *wl)
 {
    return nir_instr_worklist_length(wl) == 0;
 }
@@ -147,8 +154,8 @@ nir_instr_worklist_pop_head(nir_instr_worklist *wl)
    return *vec_instr;
 }
 
-#define nir_instr_worklist_foreach(wl, instr)                    \
-   while ((instr = nir_instr_worklist_pop_head(wl)))
+#define nir_foreach_instr_in_worklist(instr, wl) \
+   for (nir_instr *instr; (instr = nir_instr_worklist_pop_head(wl));)
 
 #ifdef __cplusplus
 } /* extern "C" */