Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'd be interested to see benchmark numbers for LuaJIT, which makes it extremely easy to compile with either replicated dispatch (each bytecode instruction footer has a separate dispatch "jmp" instruction) or common dispatch (each bytecode instruction jumps to a common dispatch "jmp" instruction): http://repo.or.cz/w/luajit-2.0.git/blob/a5b1c4d98eeb97a95077...

    // Instruction footer.
    .if 1
      // Replicated dispatch. Less unpredictable branches, but higher I-Cache use.
      .define ins_next, ins_NEXT
      .define ins_next_, ins_NEXT
    .else
      // Common dispatch. Lower I-Cache use, only one (very) unpredictable branch.
      // Affects only certain kinds of benchmarks (and only with -j off).
      // Around 10%-30% slower on Core2, a lot more slower on P4.
      .macro ins_next
        jmp ->ins_next
      .endmacro
      .macro ins_next_
      ->ins_next:
        ins_NEXT
      .endmacro
    .endif


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: