This patch separates the loop peeling utilities from Loop Unrolling to generalize it since it is no longer just being used by Loop Unrolling. (D82927).
This patch is a followup to D80580. In that patch I separate the peeling specific parameters in the UnrollingPreferences struct and form a new struct called PeelingPreferences.
This patch is also a followup to D82927, where loop peeling is added to loop fusion.
The diff of this patch was created assuming that D80580 and D82927 is merged.
It seems like some of the new includes are not being used? Are they all required?