- 11 Mar, 2021 1 commit
-
-
Seth Brenith authored
While working on the Torque compiler, I've sometimes found it difficult to understand Torque's intermediate representation and how it corresponds to the output. In this change, I propose adding a build flag that instructs Torque to emit comments describing its IR, interspersed in the generated code. This is particularly useful for seeing the stack management instructions (Peek, Poke, and DeleteRange) which don't emit any corresponding C++ code. Bug: v8:7793 Change-Id: I24bdec47da76c9bd751b928d3cd92aa513dc6593 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748040Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#73352}
-
- 23 Feb, 2021 1 commit
-
-
Seth Brenith authored
This change adds a new abstract type Lazy<T> which can be used to interoperate with CSA code that uses LazyNode. This new type has special code-generation rules because its generated type is not TNode<...> but std::function<TNode<...>()>. Torque code can do nothing with this type except pass it around, but passing it to the CSA function RunLazy is an easy way to execute the std::function and get back a normal value. Torque code can also create Lazy<T> values using the intrinsic function %MakeLazy, which takes the name of a macro as its first parameter, followed by arguments to that macro which will be passed when the LazyNode is evaluated. We use the macro's name because the language doesn't support taking references to macros, and implementing such a feature would be complicated. Bug: v8:7793 Change-Id: I09120960e3492dd51be0d4c57e14ff3826b99262 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2701752 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72964}
-
- 19 Jan, 2021 1 commit
-
-
Seth Brenith authored
This would be useful for ForInPrepare. Syntax is unchanged; Torque should now do the right thing for builtins that return a two-element struct. More elements than that is still not supported. Bug: v8:7793 Change-Id: Ic315699402203aba07e906ff6e029834ec0061c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596498Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#72171}
-
- 05 Oct, 2020 1 commit
-
-
Seth Brenith authored
This change adds a new code generator, which supports a subset of the instructions supported by the existing CSAGenerator, and instead of generating CSA it generates runtime C++ code. The new generator is used to generate a set of Torque macros that return slices to indexed fields. These new macros should be sufficient to eventually support Torque-generated field accessors, BodyDescriptors, verifier functions, and postmortem field inspection in debug_helper. Bug: v8:7793 Change-Id: Ife2d25cfd55a08238c625a8b04aca3ff2a0f4c63 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2429566Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#70313}
-
- 15 Jun, 2020 1 commit
-
-
Ng Zhi An authored
The intention is to print the address of Block, print it without any cast. See https://clang.llvm.org/extra/clang-tidy/checks/google-readability-casting.html and https://google.github.io/styleguide/cppguide.html#Casting. Bug: v8:10488 Change-Id: Id174083d0c51518a808459b1b4cd12d5aa9781ab Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2240503Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#68344}
-
- 23 Apr, 2020 1 commit
-
-
Seth Brenith authored
This change allows Torque code to initialize bitfield structs, using the same syntax as struct initialization. It also moves the definition of the JSPromise flags to Torque as an example usage. Bug: v8:7793 Change-Id: I3d5e49aa22139ffb4b8ea9f308dd36a2d22b2c1b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2148176 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#67338}
-
- 22 Apr, 2020 1 commit
-
-
Seth Brenith authored
This is a reland of 80843eda Original change's description: > [torque] Allow storing to bitfield structs that are stored in Smis > > This change: > 1. Updates the Torque compiler to allow direct access to bitfields that > are packed within Smi values, which previously would have required a > separate untagging step, > 2. Updates JSRegExpStringIterator to represent its flags in Torque, > 3. Adds reduction cases in MachineOperatorReducer for when the input to > a branch or the left-hand side of a Word32Equals is based on a 64-bit > shift-and-mask operation which has been truncated to 32 bits, as is > the case in the code generated by step 1, and > 4. Adds a reduction case in MachineOperatorReducer to remove an extra > Word64And operation added by step 1. > > Bug: v8:7793 > Change-Id: Ib4ac2def6211b3cae6be25a8b2a644be5c7d6d3f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2119225 > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67290} Bug: v8:7793 Change-Id: I783b6ec080042fec0e922927f6675dede458a072 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2159731Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#67305}
-
- 21 Apr, 2020 2 commits
-
-
Francis McCabe authored
This reverts commit 80843eda. Reason for revert: Causes compilation failure on macs https://ci.chromium.org/p/v8/builders/ci/Mac%20V8%20FYI%20Release%20(Intel)/8934? Original change's description: > [torque] Allow storing to bitfield structs that are stored in Smis > > This change: > 1. Updates the Torque compiler to allow direct access to bitfields that > are packed within Smi values, which previously would have required a > separate untagging step, > 2. Updates JSRegExpStringIterator to represent its flags in Torque, > 3. Adds reduction cases in MachineOperatorReducer for when the input to > a branch or the left-hand side of a Word32Equals is based on a 64-bit > shift-and-mask operation which has been truncated to 32 bits, as is > the case in the code generated by step 1, and > 4. Adds a reduction case in MachineOperatorReducer to remove an extra > Word64And operation added by step 1. > > Bug: v8:7793 > Change-Id: Ib4ac2def6211b3cae6be25a8b2a644be5c7d6d3f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2119225 > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67290} TBR=tebbi@chromium.org,seth.brenith@microsoft.com,nicohartmann@chromium.org Change-Id: Ifa683c92631291c9437438682b6efb2e12862682 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7793 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2159730Reviewed-by: Francis McCabe <fgm@chromium.org> Commit-Queue: Francis McCabe <fgm@chromium.org> Cr-Commit-Position: refs/heads/master@{#67291}
-
Seth Brenith authored
This change: 1. Updates the Torque compiler to allow direct access to bitfields that are packed within Smi values, which previously would have required a separate untagging step, 2. Updates JSRegExpStringIterator to represent its flags in Torque, 3. Adds reduction cases in MachineOperatorReducer for when the input to a branch or the left-hand side of a Word32Equals is based on a 64-bit shift-and-mask operation which has been truncated to 32 bits, as is the case in the code generated by step 1, and 4. Adds a reduction case in MachineOperatorReducer to remove an extra Word64And operation added by step 1. Bug: v8:7793 Change-Id: Ib4ac2def6211b3cae6be25a8b2a644be5c7d6d3f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2119225 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#67290}
-
- 11 Feb, 2020 1 commit
-
-
Nico Hartmann authored
This CL significantly reduces the size of CSA files generated from torque by introducing only those Phis at block entry that are required and otherwise uses defined values directly. To do so it does: - Define a DefinitionLocation that represents where a value is defined. - For each block compute all the definitions that reach that block and introduce a phi iff the reaching definitions for a value are not the same for all predecessor blocks. - In CSAGenerator map all DefinitionLocations to variables, such that if the same value is used in multiple blocks, it is mapped to the same variable without the need to pass it along the jump. This reduces both the arguments passed to Goto, Branch, ... and the variables that need to be passed to Bind when the block's label is bound. This reduces the number of temporary variables significantly. Temporaries are declared outside of blocks now in order to be accessible from other blocks. Drive-by changes: - Sequences of SetSourcePosition calls are merged if no output is generated between them. - Dead blocks are no longer generated in release builds. Bug: v8:9861 Change-Id: I5c30e5376e93c424c3ebfc5144a08592d77ae61f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2037444 Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#66225}
-
- 20 Dec, 2019 1 commit
-
-
Tobias Tebbi authored
This allows the definition of classes with several arrays and ports SmallOrderedHashTable subclasses to Torque as an example, including the existing CSA allocation functions for them. Overview of changes: - Introduce ResidueClass to encapsulate the modulo-arithmetic necessary to do alignment checks. - Add MachineOperatorReducer to the CSA pipeline to address now missing CSA ad-hoc constant folding that got blocked by a temporary phi. - Allow assignments to references to structs. This is needed to initialize the data_table part of SmallOrderedHashMap. - Make the NumberLiteralExpression AST-node store a double instead of a string. This is necessary to detect arrays with constant size used for padding. - Turn offsets into base::Optional<size_t> to ensure we don't use an invalid or statically unknown offset. - Remove CreateFieldReferenceInstruction since it doesn't work for complex offset computations and the logic can be expressed better in ImplementationVisitor. - Validate alignment of structs embedded in classes. Bug: v8:10004 v8:7793 Change-Id: Ifa414b42278e572a0c577bf9da3d37f80771a258 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958011 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#65538}
-
- 17 Dec, 2019 1 commit
-
-
Seth Brenith authored
This change implements support for reading and writing bitfields from Torque code, and adds a couple of unit tests for this functionality. As Tobias suggested, the LocationReference for a bitfield access contains a nested LocationReference to where the bitfield struct is stored, so that store operations can read the original value, update part of it, and write it back. Bug: v8:7793 Change-Id: I1004a5c7fcb6cf58df5ad50109b114bf89c80efc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1957841 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65487}
-
- 10 Dec, 2019 1 commit
-
-
Tobias Tebbi authored
This CL generalizes and improves how we handle allocations in Torque. Overview of the changes: - Remove obsolete special handling for JSObject classes, since it was incomplete: It breaks as soon as slack tracking is active. - Handle array initialization using slices. - Properly align allocation sizes. This enabled allocating strings. - Port AllocateSeq{One,Two}ByteString to Torque, which is much easier now than the old CSA code since allocation size alignment and large-object space allocation just happen out-of-the-box. - Remove obsolete or unnecessary intrinsics, some of them turn into macros in the torque_internal namespace. - Distinguish between header size and overall size for ClassType, make size optional and only defined when it is statically known. Bug: v8:10004 v8:7793 Change-Id: I623db233e7fb4deed54e8039ae0c24705e9a44e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1932356Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65397}
-
- 30 Aug, 2019 1 commit
-
-
Georg Schmid authored
This CL adds a LocationReference specifically for slices to Torque. This allows us to safely reference arrays in objects and pass around such references. For an array of T-typed elements, referencing yields a Slice<T>. In addition, the traditional element access syntax ('o.array[i]') now internally produces a slice, indexes it at 'i' and dereferences the resulting HeapReference. Bug: v8:7793 Change-Id: I4af58e4d2feac547c55a1f6f9350a6c510383df2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1771782 Commit-Queue: Georg Schmid <gsps@google.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63479}
-
- 11 Apr, 2019 1 commit
-
-
Tobias Tebbi authored
This adds references to HeapObject fields to Torque. The syntax is based on Rust (which is essentially C pointer syntax). The type &T is a reference to T (which must be a scalar type for now). We can create references from field access expressions, using the addressof(&) operator: &obj.fieldname To read or assign a reference, we use the dereference(*) operator: *someref = *otherref This CL also uses references internally normal class field accesses, but only if there is no overload for field accessor functions. This allows to have overloaded field accessors for a subtype like FastJSArray. However, there is a change in behavior in that an operator ".fieldname" will stop reference creation and will therefore also stop write access to a class field of the same name. That's why this CL had to add a write overload ".length=" for FastJSArray. References desugar to a pair of a tagged HeapObject pointer and an untagged offset into this HeapObject. On the CSA-side, they are represented by the C++ struct struct TorqueReference { TNode<HeapObject> object; TNode<IntPtrT> offset; }; Bug: v8:7793 Change-Id: Ica6468d47847bd68fb6b85f731cf8fbe142fa401 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1557151 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60780}
-
- 25 Jan, 2019 1 commit
-
-
Tobias Tebbi authored
This is a reland of c5154eea Now, the CL no longer enables ASAN for Torque, since this seems to be another Clang issue that's not fixed yet. Original change's description: > [build][torque] remove workarounds for clang bug > > Now that https://bugs.llvm.org/show_bug.cgi?id=40118 has been fixed and > rolled into V8, we can remove the workarounds for this Clang bug. > > This also effectively reverts > https://chromium-review.googlesource.com/c/v8/v8/+/1280222 > > Bug: chromium:893437 > Change-Id: Ia0d6d8ebdafafbc380b1b7a7809ef16effe50d71 > Reviewed-on: https://chromium-review.googlesource.com/c/1425519 > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58987} Bug: chromium:893437 TBR: jarin@chromium.org Change-Id: Ib9ac101702d12e5bf28891cbe6b5b16bd9d5e402 Reviewed-on: https://chromium-review.googlesource.com/c/1433787 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59090}
-
- 24 Jan, 2019 1 commit
-
-
Daniel Clifford authored
This requires honoring the instance size of the object stored in the map for JSObject. To do this, allocation is now split into two instrinsics, one that calculates the base size of the allocated object (%GetAllocationBaseSize) and one that actually allocates (%Allocate). In the process, remove objects.tq, which only existed to contain a macro to fetch the default JSObject map, which is functionality that is now in the JSObject class constructor. Bug: v8:7793 Change-Id: I426a7943aac67eacad46d4ff39f5c821489a04bc Reviewed-on: https://chromium-review.googlesource.com/c/1426959 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59052}
-
- 23 Jan, 2019 1 commit
-
-
Tobias Tebbi authored
This reverts commit c5154eea. Reason for revert: Broke ASAN bot Original change's description: > [build][torque] remove workarounds for clang bug > > Now that https://bugs.llvm.org/show_bug.cgi?id=40118 has been fixed and > rolled into V8, we can remove the workarounds for this Clang bug. > > This also effectively reverts > https://chromium-review.googlesource.com/c/v8/v8/+/1280222 > > Bug: chromium:893437 > Change-Id: Ia0d6d8ebdafafbc380b1b7a7809ef16effe50d71 > Reviewed-on: https://chromium-review.googlesource.com/c/1425519 > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58987} TBR=jarin@chromium.org,tebbi@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:893437 chromium:924534 Change-Id: Idfc266c11e3413334a12694dd573bdecf5427890 Reviewed-on: https://chromium-review.googlesource.com/c/1430067Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59039}
-
- 22 Jan, 2019 1 commit
-
-
Tobias Tebbi authored
Now that https://bugs.llvm.org/show_bug.cgi?id=40118 has been fixed and rolled into V8, we can remove the workarounds for this Clang bug. This also effectively reverts https://chromium-review.googlesource.com/c/v8/v8/+/1280222 Bug: chromium:893437 Change-Id: Ia0d6d8ebdafafbc380b1b7a7809ef16effe50d71 Reviewed-on: https://chromium-review.googlesource.com/c/1425519Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#58987}
-
- 16 Jan, 2019 1 commit
-
-
Daniel Clifford authored
With the changes in this patch, it is now possible to add methods to both Torque's class and struct types. As a special case, "constructor" methods are used to initialize the values of classes and structs when they are constructed. The functionality in this patch includes: - The refactoring of class- and struct-handling code to share field and method declaration code between both. - Addition of the "%Allocate" intrinsic that allocates raw bytes to be allocated from the V8 GC's NewSpace heap as the basis for freshly created, initialized class objects. - An implementation of a CallMethodExpression AST node that enables calling methods and constructors, including special handling of passing through the "this" pointer for method calls on structs by reference. The syntax for struct construction using "{}" remains as before, but now calls the struct's matching constructor rather than implicitly initializing the struct fields with the initialization arguments. A new syntax for allocation classes is introduced: "new ClassName{constructor_param1, constructor_param1, ...}", which de-sugars to an %Allocate call followed by a call to the matching constructor. - class constructors can use the "super" keyword to initialize their super class. - If classes and struct do not have a constructor, Torque creates a default constructor for them based on their field declarations, where each field's initial value is assigned to a same-typed parameter to the the default constructor. The default constructor's parameters are in field-declaration order, and for derived classes, the default constructor automatically uses a "super" initialization call to initialize inherited fields. - Class field declarations now automatically create ".field" and ".field=" operators that create CSA-compatible object accessors. - Addition of a no-argument constructor for JSArrays that creates an empty, PACKED_SMI_ELEMENTS JSArray using the machinery added elsewhere in this patch. Bug: v8:7793 Change-Id: I31ce5f4b444656ab999555d780aeeba605666bfa Reviewed-on: https://chromium-review.googlesource.com/c/1392192 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#58860}
-
- 10 Jan, 2019 1 commit
-
-
Daniel Clifford authored
Class declarations support structured heap data that is a subtype of HeapObject. Only fields of Object subtypes (both strong and weak) are currently supported (no scalar fields yet). With this CL, both the field list macro used with the C++ DEFINE_FIELD_OFFSET_CONSTANTS macro (to make field offset constants) as well as the Torque "operator '.field'" macros are generated for the classes declared in Torque. This is a first step to removing the substantial amount of duplication and boilerplate code needed to declare heap object classes. As a proof of concept, and handful of class field definitions, including those for non trivial classes like JSFunction, have been moved to Torque. Bug: v8:7793 Change-Id: I2fa0b53db65fa6f5fe078fb94e1db3418f908753 Reviewed-on: https://chromium-review.googlesource.com/c/1373971 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#58704}
-
- 17 Dec, 2018 1 commit
-
-
Jakob Gruber authored
Currently, Torque's builtin pointers store a Code target underneath and callsites generate a kArchCallCodeObject opcode. When embedded builtins are enabled, the call thus first calls the on-heap trampoline, which finally jumps to the target off-heap builtin code. This will no longer be possible in jitless mode, since on-heap code must not be executable. As a step towards changing the way builtin pointers are called (function pointers will hold the builtin index as a Smi, and callsites look up the off-heap target address and jump there), this CL adds a dedicated opcode for builtin pointer calls to the compiler pipeline. The calling mechanism itself is unchanged, changes there will happen in a follow-up. Drive-by: rename 'FunctionPointer' in torque/ to 'BuiltinPointer'. Bug: v8:7777 Change-Id: Ic999a1cd7c3172425dd4a1513ae2f50c774faddb Reviewed-on: https://chromium-review.googlesource.com/c/1378175Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58281}
-
- 22 Nov, 2018 1 commit
-
-
Daniel Clifford authored
This is a reland of 74a0ad7d Original change's description: > [torque] Implement intrinsics support > > Also add the first intrinsic and usage of it: %RawCast > > Bug: v8:7793 > Change-Id: Id1e3288e8bab6adb510731076a39590e8fd156be > Reviewed-on: https://chromium-review.googlesource.com/c/1344152 > Commit-Queue: Daniel Clifford <danno@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57692} Bug: v8:7793 Change-Id: I315c7d44f265d0f937598e8afb1c28b08d6a23da Reviewed-on: https://chromium-review.googlesource.com/c/1347472Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#57715}
-
- 21 Nov, 2018 2 commits
-
-
Daniel Clifford authored
This reverts commit 74a0ad7d. Reason for revert: Presubmit tests fail Original change's description: > [torque] Implement intrinsics support > > Also add the first intrinsic and usage of it: %RawCast > > Bug: v8:7793 > Change-Id: Id1e3288e8bab6adb510731076a39590e8fd156be > Reviewed-on: https://chromium-review.googlesource.com/c/1344152 > Commit-Queue: Daniel Clifford <danno@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57692} TBR=danno@chromium.org,tebbi@chromium.org Change-Id: Ief78187f2edaf80c715dea676cbd40edd747ad21 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7793 Reviewed-on: https://chromium-review.googlesource.com/c/1346500Reviewed-by: Daniel Clifford <danno@chromium.org> Commit-Queue: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#57694}
-
Daniel Clifford authored
Also add the first intrinsic and usage of it: %RawCast Bug: v8:7793 Change-Id: Id1e3288e8bab6adb510731076a39590e8fd156be Reviewed-on: https://chromium-review.googlesource.com/c/1344152 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#57692}
-
- 13 Nov, 2018 1 commit
-
-
Mike Stanton authored
BUG=v8:7793 Change-Id: Ibcf16998ef9a44ae899a2536ccf02af1b7b7193d Reviewed-on: https://chromium-review.googlesource.com/c/1333410 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#57469}
-
- 05 Nov, 2018 1 commit
-
-
Tobias Tebbi authored
- Name lookup in module scopes has namespace semantics now: All overloads from all parent modules are combined before overload resolution. - Allow overloads of different callables: runtime-functions, macros, builtins, and generics. - The duplication between the DeclarationVisitor and the ImplementationVisitor is removed: The DeclarationVisitor creates declarables for everything except for implicit generic specializations. The ImplementationVisitor iterates over declarables. The DeclarationVisitor only looks at the header of declarations, not at the body. - Modules become Declarable's, which will enable them to be nested. - Modules replace the existing Scope chain mechanism, which will make it easier to inline macros. - The DeclarationVisitor and Declarations become stateless. All state is moved to contextual variables and the GlobalContext. - Implicit specializations are created directly from the ImplementationVisitor. This will enable template parameter inference. - As a consequence, the list of all builtins is only available after the ImplementationVisitor has run. Thus GenerateBuiltinDefinitions has to move to the ImplementationVisitor. Also, this makes it necessary to resolve the link from function pointer types to example builtins only at this point. Bug: v8:7793 Change-Id: I61cef2fd3e954ab148c252974344a6e38ee2d01d Reviewed-on: https://chromium-review.googlesource.com/c/1304294 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#57231}
-
- 02 Nov, 2018 1 commit
-
-
Tobias Tebbi authored
Bug: v8:8393 Change-Id: I6ab34cbe6c17f358c570e0bd27bf2de917f71b71 Reviewed-on: https://chromium-review.googlesource.com/c/1309764 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#57211}
-
- 31 Oct, 2018 3 commits
-
-
Daniel Clifford authored
This is a reland of 0f15ed05 Original change's description: > [torque]: Implement catch handlers for try blocks > > In addition (and in combination), try statements now support "catch" > clauses at the end that catch JavaScript exceptions throw by any builtin > or runtime function contained in the try block: > > try { > ThrowTypeError(context, ...); > } > catch (e) { > // e has type Object > } > > Bug: v8:7793 > Change-Id: Ie285ff888c49c112276240f7360f70c8b540ed19 > Reviewed-on: https://chromium-review.googlesource.com/c/1302055 > Commit-Queue: Daniel Clifford <danno@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57169} Bug: v8:7793 Change-Id: I3c4182303acfdfa625654976bec372cf531d954f Reviewed-on: https://chromium-review.googlesource.com/c/1310295Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#57184}
-
Maya Lekova authored
This reverts commit 0f15ed05. Reason for revert: Braking Node.js integration, see https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20-%20node.js%20integration/3917 Original change's description: > [torque]: Implement catch handlers for try blocks > > In addition (and in combination), try statements now support "catch" > clauses at the end that catch JavaScript exceptions throw by any builtin > or runtime function contained in the try block: > > try { > ThrowTypeError(context, ...); > } > catch (e) { > // e has type Object > } > > Bug: v8:7793 > Change-Id: Ie285ff888c49c112276240f7360f70c8b540ed19 > Reviewed-on: https://chromium-review.googlesource.com/c/1302055 > Commit-Queue: Daniel Clifford <danno@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57169} TBR=danno@chromium.org,mstarzinger@chromium.org,tebbi@chromium.org Change-Id: Ib9e3155ef46cc46851c4ca8a2624fd7634238e13 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7793 Reviewed-on: https://chromium-review.googlesource.com/c/1310197Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#57177}
-
Daniel Clifford authored
In addition (and in combination), try statements now support "catch" clauses at the end that catch JavaScript exceptions throw by any builtin or runtime function contained in the try block: try { ThrowTypeError(context, ...); } catch (e) { // e has type Object } Bug: v8:7793 Change-Id: Ie285ff888c49c112276240f7360f70c8b540ed19 Reviewed-on: https://chromium-review.googlesource.com/c/1302055 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57169}
-
- 29 Oct, 2018 1 commit
-
-
Daniel Clifford authored
In the process implement TopType to express undefined values and transient types after they no longer are valid, as well as checks to make sure that transtioning callables are transitively marked to express if they or their call chain modify transient types. Bug: v8:7793 Change-Id: Idb237e878d3a511a4f460b6510ffd4876593951d Reviewed-on: https://chromium-review.googlesource.com/c/1297963 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#57052}
-
- 16 Oct, 2018 1 commit
-
-
Tobias Tebbi authored
Motivated by https://crrev.com/c/1196693, this allows to declare runtime functions with return type never in Torque. For example: extern runtime ReThrow(Context, Object) : never; Change-Id: I5dd8fe0ca22c778364bfcf1caf52180039c5be7e Reviewed-on: https://chromium-review.googlesource.com/c/1282957 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#56709}
-
- 04 Oct, 2018 1 commit
-
-
Tobias Tebbi authored
Bug: v8:7793 Change-Id: I5261122faf422987968ee1e405966f878ff910a1 Reviewed-on: https://chromium-review.googlesource.com/c/1245766 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#56391}
-