Possibly better loop construct, also labels+goto important and on the fly compiler idea.
Bernhard Schornak
schornak at web.de
Wed Oct 23 09:13:29 EDT 2013
Skybuck Flying schrieb:
> This hereby indicates problems with the while loop: it makes little sense to put the exiting
> conditions at the top.
Why?
...
dec rcx
jbe 1f
0:some
code
to
perform
...
jmp 0b
p2align 5,,31
1:continue
with
something
else
...
This code triggers one penalty if RCX was zero or negative (it jumps directly
to label 1 after the penalty for the wrong assumption "not taken" passed by),
or two penalties if RCX was positive - one for the 2nd assumption is "taken",
one for the finally taken conditional jump.
The same applies if you moved the condition check to the end of the loop, but
you could not catch negative numbers / zero without executing the code in the
loop at least once.
There is no general rule which construct should be preferred. In the end, the
one suiting your needs might be the best choice. On the other hand, no one is
able to predict which code might be generated by a specific HLL-compiler.
Greetings from Augsburg
Bernhard Schornak
More information about the Python-list
mailing list