loop: Remove parameter iteration_phi from get_start_and_add().

All callers pass loop_info.iteration_phi.
loop: Correct role check.

The second test should test role == invariant, not constant.
loop: Adjust for removal of Projs from Cmp a long time ago.

Cmp does not have Projs anymore, so is_simple_loop() directly returns the Cmp and there is no Proj to skip.
loop: Clean up and simplify get_preferred_factor_constant().
loop: Remove duplicate Sub.

The same Sub is created a few lines above.
iropt: Use tarval_neg(x) instead of tarval_sub(get_mode_null(), x).
ircons: Add and use new_{r,rd}_Const_null().
ircons: Add and use new_{r,rd}_Const_one().
lower_hl: Factorise common code in lower_sel().
ir: Use new_r_Const_long() instead of new_tarval_from_long() + new_r_Const().
loop: Cleanup.
loop: Remove unused array.
loop: Remove loop_optimization() from public API.

It cannot sensibly be called from outside, due to a hidden parameter, which is a static variable in the implementation.
loop: Turn the static variable loop_op into a parameter.
loop: Remove the write-only flag loop_info.needs_backedge.
loop: Remove the write-only variable loop_info.count_tar.
loop: Remove the write-only variable loop_info.ld_st.
loop: Remove the flag to count Projs.

It is not sensible to count Projs.
They only represent an aspect of another node.
loop: Reduce loop_info.cf_out to only ir_node*.

This is the only part, which is used of the entry_edge.
loop: Remove unnecessary explicit mode specification from tarval_sub calls.