Compiler should optimize 'for' loops in the near zero range
by 'lagprogramming'. Must be marked as related to #40370 (Compiler should optimize some comparisons with -1). - ` for signedvariable:=value to -1 do` produces code where the value of a register is compared with -1. - ` for (un)signedvariable:=value downto 1 do` produces code where the value of a register is compared with 1. In both cases the compiler might produce code that compares with 0, not with 1 or -1 because, depending on the target, it may optimize the comparisons. For example: - instead of cmp a register value with 1 and then jumping on the condition >=1, it's better to test the register and then jump on the condition >0. - instead of cmp a register value with -1 and then jumping on the condition <=-1, it's better to test the register and then jump on the condition <0.
issue