Sometimes the optimizer created codes that can't be scheduled,
instead of failing completely, simply bail out and use the
un-optimized code.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16499>
if (!ready.empty()) {
sblog << "##post_scheduler: unscheduled ready instructions :";
dump::dump_op_list(&ready);
- assert(!"unscheduled ready instructions");
}
if (!pending.empty()) {
sblog << "##post_scheduler: unscheduled pending instructions :";
dump::dump_op_list(&pending);
- assert(!"unscheduled pending instructions");
}
- return improving;
+ return pending.empty() && ready.empty() && improving != 0;
}
void post_scheduler::add_interferences(value *v, sb_bitset &rb, val_set &vs) {