The following addresses the corner case of an outer loop with an empty
header where we end up asking for the BB of a NULL stmt by
special-casing this case.
PR tree-optimization/115652
* tree-vect-slp.cc (vect_schedule_slp_node): Handle the case
where the outer loop header block is empty.
{
gimple_stmt_iterator si2
= gsi_after_labels (LOOP_VINFO_LOOP (loop_vinfo)->header);
- if (last_stmt != *si2
- && vect_stmt_dominates_stmt_p (last_stmt, *si2))
+ if ((gsi_end_p (si2)
+ && (LOOP_VINFO_LOOP (loop_vinfo)->header
+ != gimple_bb (last_stmt))
+ && dominated_by_p (CDI_DOMINATORS,
+ LOOP_VINFO_LOOP (loop_vinfo)->header,
+ gimple_bb (last_stmt)))
+ || (!gsi_end_p (si2)
+ && last_stmt != *si2
+ && vect_stmt_dominates_stmt_p (last_stmt, *si2)))
si = si2;
}
}