struct ac_shader_config *config,
                                   struct radv_shader_variant_info *shader_info,
                                   gl_shader_stage stage,
-                                  bool dump_shader, bool supports_spill)
+                                  bool dump_shader,
+                                  const struct radv_nir_compiler_options *options)
 {
        if (dump_shader)
                ac_dump_module(llvm_module);
        if (dump_shader)
                fprintf(stderr, "disasm:\n%s\n", binary->disasm_string);
 
-       ac_shader_binary_read_config(binary, config, 0, supports_spill);
+       ac_shader_binary_read_config(binary, config, 0, options->supports_spill);
 
        LLVMContextRef ctx = LLVMGetModuleContext(llvm_module);
        LLVMDisposeModule(llvm_module);
        LLVMModuleRef llvm_module = ac_translate_nir_to_llvm(tm, nir, nir_count, shader_info,
                                                             options, dump_shader);
 
-       ac_compile_llvm_module(tm, llvm_module, binary, config, shader_info, nir[0]->info.stage, dump_shader, options->supports_spill);
+       ac_compile_llvm_module(tm, llvm_module, binary, config, shader_info,
+                              nir[0]->info.stage, dump_shader, options);
+
        for (int i = 0; i < nir_count; ++i)
                ac_fill_shader_info(shader_info, nir[i], options);
 
        ac_llvm_finalize_module(&ctx);
 
        ac_compile_llvm_module(tm, ctx.ac.module, binary, config, shader_info,
-                              MESA_SHADER_VERTEX,
-                              dump_shader, options->supports_spill);
+                              MESA_SHADER_VERTEX, dump_shader, options);
 }