v8/test
Leszek Swirski 5dea60d60b Revert "[codegen] Add static interface descriptors"
This reverts commit ae0752df1b.

Reason for revert: Predictably, constexpr issues on non-clang compilers.

Original change's description:
> [codegen] Add static interface descriptors
>
> Add a new CRTP StaticCallInterfaceDescriptor class, which provides
> static constexpr getters for a descriptor's registers, parameter counts,
> and so on. Each CallInterfaceDescriptor subclass is changed to extend
> StaticCallInterfaceDescriptor, with StaticCallInterfaceDescriptor itself
> extending CallInterfaceDescriptor to still provide a dynamic lookup
> where needed.
>
> StaticCallInterfaceDescriptor provides a couple of customisation points,
> where it reads its CRTP derived descriptor's static fields and
> functions, with default fallbacks where appropriate. With these
> customisation points, the definition of CallInterfaceDescriptor
> subclasses is simplified to:
>
>     a) Providing parameter names (as before)
>     b) Providing parameter types (as before)
>     c) Optionally setting flags (like kNoContext or kAllowVarArgs) as
>        static booleans on the class.
>     d) Optionally providing a `registers()` method that returns a
>        std::array<Register, N> of registers that may be used for
>        parameters (if not provided, this defaults to the implementation
>        specific default register set).
>
> Parameter registers (and register count) are automagically set based on
> the number of parameters and number of given registers, with extra magic
> to ignore no_reg registers (to reduce ia32 special casing). The
> CallInterfaceDescriptorData is initialized based on these static
> functions, rather than manual per-descriptor initializers.
>
> This allows us to skip loading descriptors dynamically for CallBuiltin
> in Sparkplug, and instead lets us use a bit of template magic to
> statically set up arguments for the calls. Any other users of statically
> known descriptors will also benefit, thanks to C++ picking the static
> methods over the dynamic methods on the base class when available.
>
> Because we can remove various virtual functions and trigger heavier
> inlining of constantly known values, binary size slightly decreases with
> this change.
>
> Note that torque-generated descriptors are changed to use the same magic,
> rather than having Torque-specific magic, for consistency.
>
> Bug: v8:11420
> Change-Id: Icc5e238b6313a08734feb564204a13226b450c22
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2814518
> Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73996}

Bug: v8:11420
Change-Id: Ie5469c9253fc140590ac30b72db6eb1d93f86806
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831485
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#74000}
2021-04-16 13:49:15 +00:00
..
benchmarks cppgc: Fix trace performance benchmark 2021-04-12 19:31:33 +00:00
cctest Revert "[codegen] Add static interface descriptors" 2021-04-16 13:49:15 +00:00
common [wasm] Fix interpreter EH stack height bug 2021-04-12 18:00:33 +00:00
debugger Reland "[inspector] Report [[Prototype]] as internal property." 2021-04-12 08:44:13 +00:00
debugging [wasm] Rename kWasmStmt -> kWasmVoid 2021-03-22 07:58:18 +00:00
fuzzer Reland "[api] Add v8::Isolate::ThrowError helper" 2021-04-16 11:48:05 +00:00
fuzzilli Fix unhandled promise rejections in REPRL mode 2020-09-30 13:34:23 +00:00
inspector Reland "[api] Add v8::Isolate::ThrowError helper" 2021-04-16 11:48:05 +00:00
intl Fix BestFitMatcher due to invalid locale id in ICU 2021-04-07 06:17:53 +00:00
js-perf-test Update OWNERS in test/* 2021-02-25 14:26:24 +00:00
memory Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
message [weakrefs] Remove --no-harmony-weak-refs flag 2021-04-08 23:10:53 +00:00
mjsunit [fastcall] Add support for leaf interface type checks 2021-04-16 13:48:07 +00:00
mkgrokdump [build] Fold v8_wrappers into v8_libbase 2021-02-25 10:56:20 +00:00
mozilla [compiler, infra] Add a --stress-concurrent-inlining flag and a bot 2021-01-29 12:05:03 +00:00
test262 Ship the relative indexing method .at 2021-04-14 16:45:25 +00:00
torque [torque] Add LazyNode support 2021-02-23 16:51:53 +00:00
unittests Revert "[codegen] Add static interface descriptors" 2021-04-16 13:49:15 +00:00
wasm-api-tests Reland "[no-wasm] Exclude src/wasm from compilation" 2021-03-11 14:29:26 +00:00
wasm-js [wasm] Update spec tests 2021-04-14 13:48:55 +00:00
wasm-spec-tests [wasm] Update spec tests 2021-04-14 13:48:55 +00:00
webkit Disallow \8 and \9 in strict mode and template literals 2020-08-03 18:05:14 +00:00
BUILD.gn [no-wasm] Exclude more targets from build 2021-03-09 11:25:54 +00:00
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00