return false;
    }
 
+   if (ish->compiled_once) {
+      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
+   } else {
+      ish->compiled_once = true;
+   }
+
    uint32_t *so_decls =
       ice->vtbl.create_so_decl_list(&ish->stream_output,
                                     &vue_prog_data->vue_map);
                          prog_data, so_decls, system_values, num_system_values,
                          num_cbufs);
 
-   if (ish->compiled_once) {
-      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
-   } else {
-      ish->compiled_once = true;
-   }
-
    ralloc_free(mem_ctx);
    return shader;
 }
       return false;
    }
 
-   struct iris_compiled_shader *shader =
-      iris_upload_shader(ice, IRIS_CACHE_TCS, sizeof(*key), key, program,
-                         prog_data, NULL, system_values, num_system_values,
-                         num_cbufs);
-
    if (ish) {
       if (ish->compiled_once) {
          iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
       }
    }
 
+   struct iris_compiled_shader *shader =
+      iris_upload_shader(ice, IRIS_CACHE_TCS, sizeof(*key), key, program,
+                         prog_data, NULL, system_values, num_system_values,
+                         num_cbufs);
+
    ralloc_free(mem_ctx);
    return shader;
 }
       return false;
    }
 
+   if (ish->compiled_once) {
+      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
+   } else {
+      ish->compiled_once = true;
+   }
+
    uint32_t *so_decls =
       ice->vtbl.create_so_decl_list(&ish->stream_output,
                                     &vue_prog_data->vue_map);
                          prog_data, so_decls, system_values, num_system_values,
                          num_cbufs);
 
-   if (ish->compiled_once) {
-      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
-   } else {
-      ish->compiled_once = true;
-   }
-
    ralloc_free(mem_ctx);
    return shader;
 }
       return false;
    }
 
+   if (ish->compiled_once) {
+      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
+   } else {
+      ish->compiled_once = true;
+   }
+
    uint32_t *so_decls =
       ice->vtbl.create_so_decl_list(&ish->stream_output,
                                     &vue_prog_data->vue_map);
                          prog_data, so_decls, system_values, num_system_values,
                          num_cbufs);
 
-   if (ish->compiled_once) {
-      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
-   } else {
-      ish->compiled_once = true;
-   }
-
    ralloc_free(mem_ctx);
    return shader;
 }
       return false;
    }
 
-   struct iris_compiled_shader *shader =
-      iris_upload_shader(ice, IRIS_CACHE_FS, sizeof(*key), key, program,
-                         prog_data, NULL, system_values, num_system_values,
-                         num_cbufs);
-
    if (ish->compiled_once) {
       iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
    } else {
       ish->compiled_once = true;
    }
 
+   struct iris_compiled_shader *shader =
+      iris_upload_shader(ice, IRIS_CACHE_FS, sizeof(*key), key, program,
+                         prog_data, NULL, system_values, num_system_values,
+                         num_cbufs);
+
    ralloc_free(mem_ctx);
    return shader;
 }
       return false;
    }
 
-   struct iris_compiled_shader *shader =
-      iris_upload_shader(ice, IRIS_CACHE_CS, sizeof(*key), key, program,
-                         prog_data, NULL, system_values, num_system_values,
-                         num_cbufs);
-
    if (ish->compiled_once) {
       iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
    } else {
       ish->compiled_once = true;
    }
 
+   struct iris_compiled_shader *shader =
+      iris_upload_shader(ice, IRIS_CACHE_CS, sizeof(*key), key, program,
+                         prog_data, NULL, system_values, num_system_values,
+                         num_cbufs);
+
    ralloc_free(mem_ctx);
    return shader;
 }