v8/test/cctest
JialuZhang-intel ea97572d47 [turbofan] Improve jump threading phase
Let jump threading phase be able to handle the jump with gap moves instructions.
Record the first occurrence of the gap jump instruction and forward
the same gap jump instructions into the recorded one.

For example:
  In this case, we merge the second instruction into the first one,
  because those two gap jump instructions have the same gap moves.

    -- Before jump threading phase:
    B0:
    1. gap(rdx=rbx)
       ArchJmp imm:3
    B1:
    2. gap(rdx=rbx)
       ArchJmp imm:3

    -- After jump threading phase:
    B0:
    1. gap(rdx=rbx)
       ArchJmp imm:3
    B1:
    2. ArchNop

This can eliminate redundant jump and move instructions.

Design doc: https://docs.google.com/document/d/1SpO7Kw4e6CnCesFT118MUnCufUHZDy3QaVSymcci5jE/edit?usp=sharing

Change-Id: Ie94c8f63e2f758824619f6ed9513cbdff00186c4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3858528
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Jialu Zhang <jialu.zhang@intel.com>
Cr-Commit-Position: refs/heads/main@{#83288}
2022-09-19 03:44:11 +00:00
..
compiler [turbofan] Improve jump threading phase 2022-09-19 03:44:11 +00:00
heap [heap] Fix tests for MinorMC 2022-09-14 11:42:38 +00:00
torque [test] Migrate cctest/test-run-tail-calls to unittests/ 2022-09-05 16:33:54 +00:00
wasm [wasm] Move js-to-wasm wrappers to the isolate 2022-09-16 15:08:53 +00:00
assembler-helper-arm.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
assembler-helper-arm.h [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
BUILD.gn [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
cctest-utils.h Reland "[riscv32] Add RISCV32 backend" 2022-08-04 12:47:44 +00:00
cctest.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
cctest.h [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
cctest.status [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
collector.h [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
DEPS Reland "[tracing] Roll perfetto @ 28b633cd" 2019-09-06 13:42:02 +00:00
expression-type-collector-macros.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
feedback-vector-helper.h [test] Migrate cctest/test-feedback-vector to unittests/ 2022-08-22 16:36:28 +00:00
manually-externalized-buffer.h [api] Deprecate [Shared]ArrayBuffer::Externalize/GetContents and constructors 2019-10-29 22:01:54 +00:00
OWNERS Update OWNERS in test/* 2021-02-25 14:26:24 +00:00
print-extension.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
print-extension.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
profiler-extension.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
profiler-extension.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
setup-isolate-for-tests.cc [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
setup-isolate-for-tests.h Move initialization code into src/init 2019-05-16 12:36:15 +00:00
test-accessor-assembler.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-accessors.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-allocation.cc Revert "[v8] Use |AllocateAtLeast| for resizing v8 zones." 2022-09-15 20:18:17 +00:00
test-api-array-buffer.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-api-interceptors.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-api-stack-traces.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-api-typed-array.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-api.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-api.h [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-assembler-arm64.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-assembler-arm.cc [test] Migrate cctest/compiler/test-codegen to unittests/ 2022-08-22 17:28:27 +00:00
test-assembler-ia32.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-assembler-loong64.cc [loong64] Fix the wrong encoding and usage of maskeqz/masknez instructions 2021-12-24 10:46:06 +00:00
test-assembler-mips64.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-assembler-ppc.cc [codegen] Change RegList into a class 2022-03-14 12:59:48 +00:00
test-assembler-riscv32.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-assembler-riscv64.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-assembler-s390.cc [cleanup] Rename RelocInfo::NONE to RelocInfo::NO_INFO to fix -Wshadow 2021-11-17 19:11:40 +00:00
test-code-stub-assembler.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-constantpool.cc PPC: [cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-25 08:49:53 +00:00
test-cpu-profiler.cc [profiler] Use v8_flags for accessing flag values 2022-09-15 16:45:08 +00:00
test-debug-helper.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-debug.cc [debug] Use v8_flags for accessing flag values 2022-09-15 12:43:48 +00:00
test-descriptor-array.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-disasm-regex-helper.cc Unify naming convention for tests and filter them in TestLoader for cctest 2022-04-20 14:19:55 +00:00
test-disasm-regex-helper.h Unify naming convention for tests and filter them in TestLoader for cctest 2022-04-20 14:19:55 +00:00
test-field-type-tracking.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-func-name-inference.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-fuzz-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-heap-profiler.cc [profiler] Use v8_flags for accessing flag values 2022-09-15 16:45:08 +00:00
test-helper-riscv32.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-helper-riscv32.h Reland "[riscv32] Add RISCV32 backend" 2022-08-04 12:47:44 +00:00
test-helper-riscv64.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-helper-riscv64.h [riscv] Fix cctest/test-assembler-riscv64/RISCV_UTEST_swlwu. 2022-09-09 13:19:26 +00:00
test-icache.cc Reland "[riscv32] Add RISCV32 backend" 2022-08-04 12:47:44 +00:00
test-ignition-statistics-extension.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-inobject-slack-tracking.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-javascript-arm64.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-js-arm64-variables.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-js-to-wasm.cc [wasm] Use v8_flags for accessing flag values 2022-08-29 12:43:46 +00:00
test-js-weak-refs.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-liveedit.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-lockers.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-log-stack-tracer.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-macro-assembler-arm.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-macro-assembler-loong64.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-macro-assembler-mips64.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-macro-assembler-riscv32.cc [test] Migrate cctest/compiler/test-codegen to unittests/ 2022-08-22 17:28:27 +00:00
test-macro-assembler-riscv64.cc [test] Migrate cctest/compiler/test-codegen to unittests/ 2022-08-22 17:28:27 +00:00
test-mementos.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-orderedhashtable.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-profile-generator.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-property-details.cc [dict-proto] Allow storing certain PropertyDetails in single byte 2021-02-04 13:45:13 +00:00
test-ptr-compr-cage.cc [ext-code-space] Make the code space external for real 2021-10-20 16:29:51 +00:00
test-random-number-generator.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-sampler-api.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-serialize.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-shared-strings.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-simple-riscv32.cc Reland "[riscv32] Add RISCV32 backend" 2022-08-04 12:47:44 +00:00
test-simple-riscv64.cc [cleanup][test] Remove redundant NOLINT annotations 2021-04-30 11:46:14 +00:00
test-smi-lexicographic-compare.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-stack-unwinding-win64.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-strings.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-swiss-name-dictionary-csa.cc [test] Migrate cctest/test-run-tail-calls to unittests/ 2022-09-05 16:33:54 +00:00
test-swiss-name-dictionary-infra.cc [runtime] Clean up runtime function Arguments accesses 2022-03-09 13:03:15 +00:00
test-swiss-name-dictionary-infra.h [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-swiss-name-dictionary-shared-tests.h Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-swiss-name-dictionary.cc Reland "[dict-proto] SIMD support for SwissNameDictionary in Torque" 2021-03-31 13:01:34 +00:00
test-sync-primitives-arm64.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-sync-primitives-arm.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-trace-event.cc [test] Make cctest run one test, with maybe custom platform 2022-04-05 09:39:18 +00:00
test-transitions.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-transitions.h Reland "[runtime] Refactor TransitionsAccessor" 2022-02-14 12:05:06 +00:00
test-typedarrays.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-unscopables-hidden-prototype.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-unwinder-code-pages.cc [cctest] Use v8_flags for accessing flag values 2022-09-16 08:22:03 +00:00
test-usecounters.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-utils-arm64.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-utils-arm64.h [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-utils.cc [test] Remove some unused includes 2022-07-18 12:59:03 +00:00
test-v8windbg.cc [tools] Add v8windbg, a WinDbg extension for V8 2020-02-18 19:16:18 +00:00
test-verifiers.cc [cleanup] Remove atomic kRelaxed accessors in favour for non-atomic ones 2021-03-08 10:57:19 +00:00
testcfg.py [test] Refactor testrunner (4) 2022-07-18 09:52:24 +00:00
trace-extension.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
trace-extension.h [test] Remove some unused includes 2022-07-18 12:59:03 +00:00