diff --git a/src/amd/compiler/aco_interface.cpp b/src/amd/compiler/aco_interface.cpp index a05df1e7959..6d54cc89562 100644 --- a/src/amd/compiler/aco_interface.cpp +++ b/src/amd/compiler/aco_interface.cpp @@ -95,10 +95,6 @@ void aco_compile_shader(unsigned shader_count, /* spilling and scheduling */ aco::live live_vars = aco::live_var_analysis(program.get(), args->options); aco::spill(program.get(), live_vars, args->options); - if (program->collect_statistics) - aco::collect_presched_stats(program.get()); - aco::schedule_program(program.get(), live_vars); - validate(program.get()); std::string llvm_ir; if (args->options->record_ir) { @@ -115,6 +111,11 @@ void aco_compile_shader(unsigned shader_count, free(data); } + if (program->collect_statistics) + aco::collect_presched_stats(program.get()); + aco::schedule_program(program.get(), live_vars); + validate(program.get()); + /* Register Allocation */ aco::register_allocation(program.get(), live_vars.live_out); if (args->options->dump_shader) {