Skip to content
  • Damien George's avatar
    py: Add option to cache map lookup results in bytecode. · 7ee91cf8
    Damien George authored
    This is a simple optimisation inspired by JITing technology: we cache in
    the bytecode (using 1 byte) the offset of the last successful lookup in
    a map. This allows us next time round to check in that location in the
    hash table (mp_map_t) for the desired entry, and if it's there use that
    entry straight away.  Otherwise fallback to a normal map lookup.
    
    Works for LOAD_NAME, LOAD_GLOBAL, LOAD_ATTR and STORE_ATTR opcodes.
    
    On a few tests it gives >90% cache hit and greatly improves speed of
    code.
    
    Disabled by default.  Enabled for unix and stmhal ports.
    7ee91cf8