v8/src
Georg Schmid d4e6525849 [torque] Generalize type argument inference for generic calls
With the arrival of generic structs (https://chromium-review.googlesource.com/c/v8/v8/+/1714868) the existing type inference procedure for generic calls became incomplete, since it could not infer types that were only constrained as part of generic types. For instance, given

  struct Box<T: Type> { ... }

  macro unbox<T: type>(box: Box<T>): T

the type argument (Smi) at the following call site

  const box: Box<Smi> = ...;
  unbox(box);

could not be inferred.

This CL re-implements the inference procedure and documents the semantics of type argument inference in Torque a bit more clearly.

R=tebbi@chromium.org

Change-Id: I868f16afbd9864b9c810ac49bc1639b467df939c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1720812
Commit-Queue: Georg Schmid <gsps@google.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63005}
2019-07-31 13:12:29 +00:00
..
api Unwind V8 frames correctly on Windows ARM64 2019-07-31 06:24:45 +00:00
asmjs Revert "Reland "Reland "[arraybuffer] Rearchitect backing store ownership""" 2019-07-23 12:25:16 +00:00
ast [class] parse private accessors 2019-07-30 13:26:01 +00:00
base Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
builtins Unwind V8 frames correctly on Windows ARM64 2019-07-31 06:24:45 +00:00
codegen Unwind V8 frames correctly on Windows ARM64 2019-07-31 06:24:45 +00:00
common [cleanup] Remove redundant static modifiers 2019-07-31 11:08:39 +00:00
compiler Unwind V8 frames correctly on Windows ARM64 2019-07-31 06:24:45 +00:00
compiler-dispatcher Add OWNERS files for src and test 2019-05-30 04:51:21 +00:00
d8 [d8] Add handlescope within message loop 2019-07-30 15:41:58 +00:00
date Add OWNERS files for src and test 2019-05-30 04:51:21 +00:00
debug [class] parse private accessors 2019-07-30 13:26:01 +00:00
deoptimizer [mips][deoptimizer][cleanup] Don't store values of single precision fp registers 2019-07-31 01:23:35 +00:00
diagnostics Unwind V8 frames correctly on Windows ARM64 2019-07-31 06:24:45 +00:00
execution Unwind V8 frames correctly on Windows ARM64 2019-07-31 06:24:45 +00:00
extensions fix windows build issue 2019-07-24 08:44:10 +00:00
flags [heap] Add tracing of allocations origins 2019-07-29 09:58:24 +00:00
handles Reland "[utils] Make BitField final" 2019-07-29 14:20:58 +00:00
heap [WeakRefs] Make cleanup callback run as a task 2019-07-30 12:19:39 +00:00
ic [ic] Remove broken DCHECK and clean up naming 2019-07-30 16:22:08 +00:00
init [regexp] Restructure fast path check logic 2019-07-29 08:44:33 +00:00
inspector Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
interpreter [class] parse private accessors 2019-07-30 13:26:01 +00:00
json [ptr-compr] Isolatify LookupIterator implementation and friends 2019-07-09 12:07:48 +00:00
libplatform Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
libsampler Add OWNERS files for src and test 2019-05-30 04:51:21 +00:00
logging [WeakRefs] Make cleanup callback run as a task 2019-07-30 12:19:39 +00:00
numbers Add OWNERS files for src and test 2019-05-30 04:51:21 +00:00
objects [arm64] Reduce code size of deoptimization exits 2019-07-30 15:00:29 +00:00
parsing [scanner] fix edge case for parsing numeric separators 2019-07-30 17:06:29 +00:00
profiler [cpu-profiler] Ignore repeat source positions in the CPU profiler 2019-07-30 06:49:16 +00:00
protobuf Add OWNERS to src/protobuf 2019-05-15 11:17:23 +00:00
regexp Revert "[regexp] Better quick checks on loop entry nodes" 2019-07-30 09:48:31 +00:00
roots Revert "Reland "Reland "[arraybuffer] Rearchitect backing store ownership""" 2019-07-23 12:25:16 +00:00
runtime [WeakRefs] Make cleanup callback run as a task 2019-07-30 12:19:39 +00:00
sanitizer Move remaining files in src/ 2019-05-24 18:24:36 +00:00
snapshot Unwind V8 frames correctly on Windows ARM64 2019-07-31 06:24:45 +00:00
strings Reland "[utils] Make BitField final" 2019-07-29 14:20:58 +00:00
tasks Add OWNERS files for src and test 2019-05-30 04:51:21 +00:00
third_party Add missing owners files 2019-05-31 07:21:01 +00:00
torque [torque] Generalize type argument inference for generic calls 2019-07-31 13:12:29 +00:00
tracing [tracing] Separate tracing implementations and add perfetto tests 2019-07-18 15:40:12 +00:00
trap-handler Remove 'set noparent' from OWNERS files where reasonable 2019-06-03 10:18:22 +00:00
utils [cleanup] Only include halfsiphash.h when libsiphash is used 2019-07-30 06:43:56 +00:00
wasm Unwind V8 frames correctly on Windows ARM64 2019-07-31 06:24:45 +00:00
zone [parsing] Improve elision of hole checks for default parameters 2019-07-26 12:15:31 +00:00
DEPS [tracing] Use the new perfetto client API 2019-07-08 13:37:16 +00:00
OWNERS Make nested DEPS files commonly owned 2019-06-18 14:31:05 +00:00