summaryrefslogtreecommitdiffstats
path: root/Python/getopt.c
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2013-08-06 05:24:50 (GMT)
committerRaymond Hettinger <python@rcn.com>2013-08-06 05:24:50 (GMT)
commitc629d4c9a2b6ff92378ee1f2c8ed27f709d2b08e (patch)
treeffbed99c17bbf0a9be99ebce96073521f82aea56 /Python/getopt.c
parent9e3d27b574bd79b1178fa3c4ca634050eb21b47c (diff)
downloadcpython-c629d4c9a2b6ff92378ee1f2c8ed27f709d2b08e.zip
cpython-c629d4c9a2b6ff92378ee1f2c8ed27f709d2b08e.tar.gz
cpython-c629d4c9a2b6ff92378ee1f2c8ed27f709d2b08e.tar.bz2
Replace outdated optimization with clearer code that compiles better.
Letting the compiler decide how to optimize the multiply by five gives it the freedom to make better choices for the best technique for a given target machine. For example, GCC on x86_64 produces a little bit better code: Old-way (3 steps with a data dependency between each step): shrq $5, %r13 leaq 1(%rbx,%r13), %rax leaq (%rax,%rbx,4), %rbx New-way (3 steps with no dependency between the first two steps which can be run in parallel): leaq (%rbx,%rbx,4), %rax # i*5 shrq $5, %r13 # perturb >>= PERTURB_SHIFT leaq 1(%r13,%rax), %rbx # 1 + perturb + i*5
Diffstat (limited to 'Python/getopt.c')
0 files changed, 0 insertions, 0 deletions