• Raymond Hettinger's avatar
    Replace outdated optimization with clearer code that compiles better. · c629d4c9
    Raymond Hettinger yazdı
    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
    c629d4c9
Adı
Son kayıt (commit)
Son güncelleme
..
stringlib Loading commit data...
abstract.c Loading commit data...
accu.c Loading commit data...
boolobject.c Loading commit data...
bytearrayobject.c Loading commit data...
bytes_methods.c Loading commit data...
bytesobject.c Loading commit data...
capsule.c Loading commit data...
cellobject.c Loading commit data...
classobject.c Loading commit data...
codeobject.c Loading commit data...
complexobject.c Loading commit data...
descrobject.c Loading commit data...
dictnotes.txt Loading commit data...
dictobject.c Loading commit data...
enumobject.c Loading commit data...
exceptions.c Loading commit data...
fileobject.c Loading commit data...
floatobject.c Loading commit data...
frameobject.c Loading commit data...
funcobject.c Loading commit data...
genobject.c Loading commit data...
iterobject.c Loading commit data...
listobject.c Loading commit data...
listsort.txt Loading commit data...
lnotab_notes.txt Loading commit data...
longobject.c Loading commit data...
memoryobject.c Loading commit data...
methodobject.c Loading commit data...
moduleobject.c Loading commit data...
namespaceobject.c Loading commit data...
object.c Loading commit data...
obmalloc.c Loading commit data...
rangeobject.c Loading commit data...
setobject.c Loading commit data...
sliceobject.c Loading commit data...
structseq.c Loading commit data...
tupleobject.c Loading commit data...
typeobject.c Loading commit data...
typeslots.inc Loading commit data...
typeslots.py Loading commit data...
unicodectype.c Loading commit data...
unicodeobject.c Loading commit data...
unicodetype_db.h Loading commit data...
weakrefobject.c Loading commit data...