Add new policy for one iteration loops (mostly formal pre- loops) to fold exit condition and avoid going through do_maximally_unroll() as we do currently for such cases.
Move exact trip count calculation from policy_maximally_unroll() into separate method. Note, trip_count type is changed to unsigned int and its range is changed to [0, max_juint). Add new flag HasExactTripCount to indicate that loop's limits and trip count are constants.
Check for non overlaping init and limit values to avoid zero trip guard generation in remove_empty_loop.
Rename some CountedLoopNode flags.
Print loop iv range for counted loops dumps:
Loop: N286/N193 predicated counted [0,2),+1