• Jakob Gruber's avatar
    Reland "[regexp] Bytecode peephole optimization" · 282a74c7
    Jakob Gruber authored
    This is a reland of 66129430
    
    Fixed: Unaligned reads, unspecified evaluation order.
    
    Original change's description:
    > [regexp] Bytecode peephole optimization
    >
    > Bytecodes used by the regular expression interpreter often occur in
    > specific sequences. The number of dispatches in the interpreter can be
    > reduced if those sequences are combined into a single bytecode.
    >
    > This CL adds a peephole optimization pass for regexp bytecodes.
    > This pass checks the generated bytecode for pre-defined sequences that
    > can be merged into a single bytecode.
    >
    > With the currently implemented bytecode sequences a speedup of 1.12x on
    > regex-dna and octane-regexp is achieved.
    >
    > Bug: v8:9330
    > Change-Id: I827f93273a5848e5963c7e3329daeb898995d151
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1813743
    > Commit-Queue: Patrick Thier <pthier@google.com>
    > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
    > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#63992}
    
    Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng
    Cq-Include-Trybots: luci.v8.try:v8_linux_gcc_rel
    Bug: v8:9330,chromium:1008502,chromium:1008631
    Change-Id: Ib9fc395b6809aa1debdb54d9fba5b7f09a235e5b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1828917Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#64064}
    282a74c7
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
OWNERS Loading commit data...
gen-regexp-special-case.cc Loading commit data...
property-sequences.cc Loading commit data...
property-sequences.h Loading commit data...
regexp-ast.cc Loading commit data...
regexp-ast.h Loading commit data...
regexp-bytecode-generator-inl.h Loading commit data...
regexp-bytecode-generator.cc Loading commit data...
regexp-bytecode-generator.h Loading commit data...
regexp-bytecode-peephole.cc Loading commit data...
regexp-bytecode-peephole.h Loading commit data...
regexp-bytecodes.cc Loading commit data...
regexp-bytecodes.h Loading commit data...
regexp-compiler-tonode.cc Loading commit data...
regexp-compiler.cc Loading commit data...
regexp-compiler.h Loading commit data...
regexp-dotprinter.cc Loading commit data...
regexp-dotprinter.h Loading commit data...
regexp-interpreter.cc Loading commit data...
regexp-interpreter.h Loading commit data...
regexp-macro-assembler-arch.h Loading commit data...
regexp-macro-assembler-tracer.cc Loading commit data...
regexp-macro-assembler-tracer.h Loading commit data...
regexp-macro-assembler.cc Loading commit data...
regexp-macro-assembler.h Loading commit data...
regexp-nodes.h Loading commit data...
regexp-parser.cc Loading commit data...
regexp-parser.h Loading commit data...
regexp-stack.cc Loading commit data...
regexp-stack.h Loading commit data...
regexp-utils.cc Loading commit data...
regexp-utils.h Loading commit data...
regexp.cc Loading commit data...
regexp.h Loading commit data...
special-case.h Loading commit data...