- 13 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
There is just one version now, called IsPowerOfTwo. It accepts any integral type. There is one slight semantical change: Called with kMinInt, it previously returned true, because the argument was implicitly casted to an unsigned. It's now (correctly) returning false, so I had to add special handlings of kMinInt in machine-operator-reducer before calling IsPowerOfTwo on that value. R=mlippautz@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,ishell@chromium.org,yangguo@chromium.org Change-Id: Idc112a89034cdc8c03365b778b33b1c29fefb38d Reviewed-on: https://chromium-review.googlesource.com/568140Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46627}
-
- 13 Jun, 2017 1 commit
-
-
Toon Verwaest authored
This CL - removes InternalizeStringIfExists/LookupStringIfExists - makes the distinction between hash_field and hash clear to AstRawString Bug: Change-Id: Ia98c2236be4154a7db2741f2cf73681cfdcf03c7 Reviewed-on: https://chromium-review.googlesource.com/532954 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#45902}
-
- 22 May, 2017 1 commit
-
-
Wiktor Garbacz authored
Change-Id: I20ed35a7fb5104a9cc66bb54fa8966589c43d7f9 Reviewed-on: https://chromium-review.googlesource.com/507287Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45458}
-
- 15 May, 2017 1 commit
-
-
Leszek Swirski authored
Introduce a new SwitchSmiTable bytecode for generators, which does a table lookup for the accumulator value in a jump table stored in the constant array pool. This removes the if-else chains at resumable function/loop headers. As a drive-by, add a scoped environment saving struct to the bytecode graph builder. Bug: v8:6351 Bug: v8:6366 Change-Id: I63be15a8b599d6684c7df19dedb8860562678fb0 Reviewed-on: https://chromium-review.googlesource.com/500271 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#45314}
-
- 15 Feb, 2017 1 commit
-
-
caitp authored
When --harmony-async-iteration is enabled, it is now possible to use the for-await-of loop, which uses the Async Iteration protocol rather than the ordinary ES6 Iteration protocol. the Async-from-Sync Iterator object is not implemented in this CL, and so for-await-of loops will abort execution if the iterated object does not have a Symbol.asyncIterator() method. Async-from-Sync Iterators are implemented seperately in https://codereview.chromium.org/2645313003/ BUG=v8:5855, v8:4483 R=neis@chromium.org, littledan@chromium.org, adamk@chromium.org Review-Url: https://codereview.chromium.org/2637403008 Cr-Commit-Position: refs/heads/master@{#43224}
-
- 10 Feb, 2017 1 commit
-
-
Leszek Swirski authored
Removes handles from bytecode generation, instead storing un-internalized AstValues (and other, similar values such as Scopes and AstRawStrings) in the constant array builder. This will allow us in the future to generate the bytecode before internalizing the AST. BUG=v8:5832 Change-Id: I3b8be8f7329a484eb1e5d12808b001d3475239da Reviewed-on: https://chromium-review.googlesource.com/439326 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#43115}
-
- 09 Jan, 2017 1 commit
-
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2586513002 Cr-Commit-Position: refs/heads/master@{#42139}
-
- 03 Jan, 2017 1 commit
-
-
adamk authored
This triggered on a CL I was working on today, figured I'd share my work. R=mythria@chromium.org, rmcilroy@chromium.org Review-Url: https://codereview.chromium.org/2601213002 Cr-Commit-Position: refs/heads/master@{#42043}
-
- 03 Oct, 2016 1 commit
-
-
leszeks authored
Hashmaps with a simple key equality method (comparing pointers) don't need to waste cycles (and branches) comparing hash values, as the key comparison is cheap. This patch modifies the hashmap's MatchFun to take the hashes as well as the keys, thus allowing the MatchFun to ignore the hashes. This allows slightly cleaner generated code, especially when the MatchFun is inlined. BUG= Review-Url: https://codereview.chromium.org/2381303002 Cr-Commit-Position: refs/heads/master@{#39932}
-
- 30 Sep, 2016 1 commit
-
-
leszeks authored
matching function, creates a hashmap the specialises the case of keys that simply check pointer equality. I measure an average ~1% improvement on Octane code-load. Review-Url: https://codereview.chromium.org/2369963002 Cr-Commit-Position: refs/heads/master@{#39920}
-
- 29 Sep, 2016 1 commit
-
-
leszeks authored
Uses the base hashmap to store the ConstantArrayBuilder's constant map, which slightly improves the performance of ConstantArrayBuilder::Insert. Includes a small overload of the hashmap LookupOrInsert method, which allows passing in a value creation function instead of just default initialising new values. On Octane's codeload, this gives (on my machine) a 0.27% improvement, which doesn't sound like a lot but I guess every little helps. Review-Url: https://codereview.chromium.org/2336553002 Cr-Commit-Position: refs/heads/master@{#39883}
-
- 18 Aug, 2016 1 commit
-
-
rmcilroy authored
Removes all accesses to the Isolate during bytecode generation and the bytecode pipeline. Adds an DisallowIsolateAccessScope which is used to enforce this invariant within the BytecodeGenerator. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2242193002 Cr-Commit-Position: refs/heads/master@{#38716}
-
- 10 Aug, 2016 1 commit
-
-
rmcilroy authored
Don't allocate handles in the bytecode array writer, to allow off-thread bytecode generation. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2226333002 Cr-Commit-Position: refs/heads/master@{#38550}
-
- 05 Aug, 2016 1 commit
-
-
rmcilroy authored
Changes ConstantPoolArrayBuilder to do object lookups using the location of the handles, rather than dereferencing the handles and comparing the objects. This also updates CanonicalHandleScope when internalizing AST nodes to ensure that duplicate objects share the same handles and so are only added to the constant pool once. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2204243003 Cr-Commit-Position: refs/heads/master@{#38366}
-
- 25 Jul, 2016 1 commit
-
-
rmcilroy authored
Move the logic for allocating the global declaration pair array from VisitDeclarations to a later step. This is required for concurrent bytecode generation. This change requires adding support for reserving fixed constant pool array entries, which can be later updated with the value of the literal. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2167763003 Cr-Commit-Position: refs/heads/master@{#38010}
-
- 01 Apr, 2016 1 commit
-
-
oth authored
Improves code coverage of bytecode array builder and constant array builder. Fixes initial index for constant pool slice for kQuad operands. BUG=v8:4280,chromium:599000 LOG=N TBR=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1845313002 Cr-Commit-Position: refs/heads/master@{#35201}
-
- 21 Mar, 2016 1 commit
-
-
oth authored
This change introduces wide prefix bytecodes to support wide (16-bit) and extra-wide (32-bit) operands. It retires the previous wide-bytecodes and reduces the number of operand types. Operands are now either scalable or fixed size. Scalable operands increase in width when a bytecode is prefixed with wide or extra-wide. The bytecode handler table is extended to 256*3 entries. The first 256 entries are used for bytecodes with 8-bit operands, the second 256 entries are used for bytecodes with operands that scale to 16-bits, and the third group of 256 entries are used for bytecodes with operands that scale to 32-bits. LOG=N BUG=v8:4747,v8:4280 Review URL: https://codereview.chromium.org/1783483002 Cr-Commit-Position: refs/heads/master@{#34955}
-
- 01 Mar, 2016 1 commit
-
-
oth authored
Fixes a bug in the constant pool padding calculation. BUG=v8:4680 LOG=N Review URL: https://codereview.chromium.org/1749853002 Cr-Commit-Position: refs/heads/master@{#34403}
-
- 26 Feb, 2016 1 commit
-
-
oth authored
Extends the constant pool to deal with more slices. Adds ReadUnalignedUInt32(). BUG=v8:4280,v8:4747 LOG=N Review URL: https://codereview.chromium.org/1731893003 Cr-Commit-Position: refs/heads/master@{#34319}
-
- 02 Feb, 2016 1 commit
-
-
oth authored
Moves the temporary register allocator out of the bytecode array builder into TemporaryRegisterAllocator class and adds unittests. Particular must be taken around the translation window boundary motivating the addition of tests. Also adds a Clear() method to IdentityMap() which is called by the destructor. This allows classes to hold an IdentityMap if they are zone allocated. Classes must call Clear() before the zone is re-cycled or face v8 heap corruption. BUG=v8:4280,v8:4675 LOG=N Review URL: https://codereview.chromium.org/1651133002 Cr-Commit-Position: refs/heads/master@{#33686}
-
- 20 Jan, 2016 1 commit
-
-
mstarzinger authored
R=oth@chromium.org Review URL: https://codereview.chromium.org/1608693004 Cr-Commit-Position: refs/heads/master@{#33401}
-
- 05 Jan, 2016 1 commit
-
-
oth authored
This increases the size of addressable constant pool entries for jumps to match other bytecodes using operands indexing the constant pool. This change also introduces reservations for constant pool entries. Reservations are used for forward jumps to ensure a constant pool entry will be available when the jump target (label) is bound and the jump is patched up in the bytecode array. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1546683002 Cr-Commit-Position: refs/heads/master@{#33125}
-