- 13 Dec, 2017 21 commits
-
-
Michal Majewski authored
Bug: v8:6917 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I5ca840db75766413659cb96fd28b922712040cec Reviewed-on: https://chromium-review.googlesource.com/823843 Commit-Queue: Michał Majewski <majeski@google.com> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#50078}
-
Clemens Hammacher authored
So far we generated source positions and safepoint information, but we never actually attached it to the generated code objects. This CL adds that. R=titzer@chromium.org Bug: v8:6600, chromium:793694 Change-Id: I8f4c6d8752f4c31a1df51c4893c262ea5925f3b5 Reviewed-on: https://chromium-review.googlesource.com/824266Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50077}
-
Michal Majewski authored
- All testcase/testsuite/variant generator subclasses renamed to just TestCase/TestSuite/VariantGenerator since they're private implementation. - All `testcase` variables renamed to `test` to not conflict with a module name. - No more two statements in the same line. - Removed some unused testsuite methods. Bug: v8:6917 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I7710f3419f738a5f9ddca73765dd2cad2e35b952 Reviewed-on: https://chromium-review.googlesource.com/823964Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michał Majewski <majeski@google.com> Cr-Commit-Position: refs/heads/master@{#50076}
-
Clemens Hammacher authored
The intel manual knows "short jumps", "near jumps" and "far jumps", where our Label::kNear corresponds to short jumps and Label::kFar corresponds to near jumps. Add some words to document this. R=mstarzinger@chromium.org Change-Id: I2b41cc770ee2c1fecff5e7363cede264ca3cd033 Reviewed-on: https://chromium-review.googlesource.com/824270Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50075}
-
Michael Starzinger authored
This refactors the list of redirections of runtime call targets that simulators maintain to be process-wide (as opposed to be per Isolate). Such redirections are used for static C++ call targets which themselves are process-wide, which makes this model a closer fit. Access is already properly synchronized via a mutex. Along the way this also introduces the {SimulatorBase} class as a common base class for all simulator implementations. R=clemensh@chromium.org Change-Id: Iae8602c44b1b34cb916dde2b22c9403b0496b3d4 Reviewed-on: https://chromium-review.googlesource.com/823966 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50074}
-
Ross McIlroy authored
RegisterLists should only be allocated via the register allocator. To ensure this, make the RegisterList constructor private and only expose it to tests and the BytecodeRegisterAllocator. Change-Id: I09ebfc5c0f1baecfb1333fd672b96d462fd26fcf Reviewed-on: https://chromium-review.googlesource.com/822196 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#50073}
-
Clemens Hammacher authored
LiftoffAssembler::ReserveStackSpace expected number of bytes, not number of stack slots. Also, make this clear in the naming of the parameter, and remove a dead field. R=titzer@chromium.org Bug: v8:6600 Change-Id: Ic4c7167cfa26a169b2936acdde865863141f441d Reviewed-on: https://chromium-review.googlesource.com/823967Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50072}
-
Clemens Hammacher authored
We really just need one check instead of three. This also unifies the error message to be the same on 32 and 64 bit systems. Drive-by: Fix potential overflow in {validate_size}. R=titzer@chromium.org Bug: chromium:794353 Change-Id: I63c1f5ef53c1f245b9e82bcbf86a5d9ac0d2725e Reviewed-on: https://chromium-review.googlesource.com/824082Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50071}
-
Georgia Kouveli authored
This includes adding a padding slot to the stack handler, which is done for all architectures for consistency. Bug: v8:6644 Change-Id: I8a6379a82e2a9d1819069850b6734489bd6071a6 Reviewed-on: https://chromium-review.googlesource.com/822477Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Cr-Commit-Position: refs/heads/master@{#50070}
-
Sigurd Schneider authored
This disallows speculation after deoptimization from any of Array.{forEach,map,filter,find} due to CheckMap fails. Such CheckMap fails happen if the builtins' function argument causes the map of the array to change. The js-call-lowering refrains from optimizing builtins for which speculation was disallowed. Bug: v8:6898, v8:7127 Change-Id: Ied6696f8fb023ee404fb82e9d37bfb061f293854 Reviewed-on: https://chromium-review.googlesource.com/819354Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#50069}
-
Clemens Hammacher authored
Add support for loading and storing i32 values to and from memory. Support for f32 and for non-traphandler configurations (i.e. emitting bounds checks) will be added in a follow-up CL. R=titzer@chromium.org Bug: v8:6600 Change-Id: I43c44ce61f5acbac325261212374eb0f48c6ee89 Reviewed-on: https://chromium-review.googlesource.com/809164Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50068}
-
Tobias Tebbi authored
I also used the opportunity to clean up the loop peeler a bit by making the class stateful, to avoid passing long argument lists around. Bug: v8:5864 Change-Id: I2e034c6eabd381b01e15cf3e6aa3ce7b14e7b3d8 Reviewed-on: https://chromium-review.googlesource.com/822933 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#50067}
-
Sigurd Schneider authored
For eager deopts within builtin stub frames we skiped marking the underlying function as deoptimized. This avoided deopt loops where we would just generate the same optimized code all over again. Bug: v8:6898 Change-Id: Ie3d7ee4dfcbeb63e6087112d5740a423c4730599 Reviewed-on: https://chromium-review.googlesource.com/822491Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#50066}
-
Michal Majewski authored
- create testcase subclass for each test - move get_command, get_source from suite to test - promises-aplus tests are broken - moving expected outcomes etc. is still in progress Bug: v8:6917 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I006e64ecf51dda95c41dff88c68b24f17a638566 Reviewed-on: https://chromium-review.googlesource.com/798331 Commit-Queue: Michał Majewski <majeski@google.com> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#50065}
-
Sigurd Schneider authored
This CL adds support to the deoptimizer for setting the no speculation bit on a provided feedback vector if desired. Bug: v8:7127 Change-Id: I31fd1ea306cf5a4e919faeb896a83c1afdfccd63 Reviewed-on: https://chromium-review.googlesource.com/819370 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#50064}
-
Michael Stanton authored
This reverts commit 7d699b93. Reason for revert: Actually we like the trampolines. Slight reduction in code size, and prevents spanning the icache. Original change's description: > [ICs] Eliminate trampoline ICs in TurboFan generic lowering > > Trampoline ICs differ from normal ICs only in that they > load the feedback vector from the stack instead of accepting it > as an argument. We created them for FullCodeGen, where you always > have the feedback vector on the stack, and can reduce the amount > of code required to invoke an ICs by hiding the stack load down > in the trampoline IC. > > Now the concept isn't really necessary, and we can achieve a > nice cleanup of our idea-space by removing it. The first step is > to remove their usage in TurboFan. > > Bug: v8:7199 > Change-Id: I08aefa5de199b1f19adea261b7086a84338c0805 > Reviewed-on: https://chromium-review.googlesource.com/822193 > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50038} TBR=mvstanton@chromium.org,tebbi@chromium.org Change-Id: I63dcd98b799739d1d6ea55508b1ea5cfad9e3292 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7199 Reviewed-on: https://chromium-review.googlesource.com/822420Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#50063}
-
Sigurd Schneider authored
Bug: v8:7127 Change-Id: Iec65ead1540289aa99f496fd66595f2de88db68c Reviewed-on: https://chromium-review.googlesource.com/817417Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#50062}
-
peterwmwong authored
Bug: chromium:791045, v8:1956 Change-Id: I1400fc95b78e0f4771867d136377b14aed5bd4f4 Reviewed-on: https://chromium-review.googlesource.com/819510Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#50061}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/e796de3..3d92234 Rolling v8/buildtools: https://chromium.googlesource.com/chromium/buildtools/+log/282996b..1be57dc Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/cb82b10..fbee132 TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: Iea76a8896a0e92c76bf334922be62a3c60c8fcaa Reviewed-on: https://chromium-review.googlesource.com/822305Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#50060}
-
Alexei Filippov authored
BUG=v8:7202 TBR=mstarzinger@chromium.org Change-Id: I5399eab9a04edf98d57ee9e18be76e69f7cc9fa2 Reviewed-on: https://chromium-review.googlesource.com/823566Reviewed-by: Alexei Filippov <alph@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#50059}
-
Alexei Filippov authored
The new frame type is inteneded to represent native C++ stack frames. JS code may sometimes make calls to helper native functions that do not provide any special stack layout besides the return address and frame pointer. Currently the stack iterator bails out when it sees an unknown frame. The patch allows the iterator to unwind stacks having such frames. BUG=chromium:768540 Change-Id: I9c273c7015695a6733c0a0c52b522fca7b25de0d Reviewed-on: https://chromium-review.googlesource.com/794991 Commit-Queue: Alexei Filippov <alph@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#50058}
-
- 12 Dec, 2017 19 commits
-
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/ca599b0..e796de3 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d624b3c..cb82b10 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/8688d26..73924d8 TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: I28fc53da5f713100b3d93cdac5e8a2708f7c5a5f Reviewed-on: https://chromium-review.googlesource.com/821373Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#50057}
-
Sergiy Byelozyorov authored
TBR=sergiyb@chromium.org Bug: chromium:747960 Change-Id: Ib12ac093d1605ef4b409d8e73b0a75da83b2fb48 Reviewed-on: https://chromium-review.googlesource.com/817568 Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#50056}
-
Sergiy Byelozyorov authored
TBR=machenbach@chromium.org No-Try: true Bug: chromium:793687 Change-Id: I08f54c20ad50c3f733505ce0c6769cc08281beb7 Reviewed-on: https://chromium-review.googlesource.com/822613 Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#50055}
-
Clemens Hammacher authored
These enums capture the "type" of a load and store in one value, with accessors to get the value type, memory type, memory size etc. This will simplify implementing memory operations in Liftoff. R=titzer@chromium.org Bug: v8:6600 Change-Id: Ief673e90fe63292853f97e5e95b5c39da1296730 Reviewed-on: https://chromium-review.googlesource.com/822476 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#50054}
-
Tobias Tebbi authored
Turbofan does not always maintain source positions. Since the profiler is best-effort only, this is ok and we should not assert it. Source positions for stack traces are computed with an independent mechanism: the stack walker. It's impossible to use the stack walker here since it assumes that the frames actually exist. Bug: chromium:787959 Change-Id: I43c3c4e6de0a9b5f76b05c53af238cb1df6ea1c5 Reviewed-on: https://chromium-review.googlesource.com/822930Reviewed-by: Alexei Filippov <alph@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#50053}
-
Ali Ijaz Sheikh authored
* DisableInlineAllocationSteps was a blunt hammer added to work around tests that needed to avoid artificially lower limits imposed by observers. PauseAllocationObserversScope can properly disable step on a temporary basis. * Modify tests. Remove DisableInlineAllocationSteps. This exposed a bug in allocation observers: we were not doing a step when a fresh page is added. Fix this by moving the step into UpdateAllocationInfo. We should be doing a step (and keeping top_on_previous_step_ consistent) whenever we move move top(). UpdateAllocationInfo is the correct place for this rather than the callers of UpdateAllocationInfo. Bug: Change-Id: I2edc238dc2e73bf9a2e9738c2a9b50efcac5cbf0 Reviewed-on: https://chromium-review.googlesource.com/821052 Commit-Queue: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#50052}
-
Marja Hölttä authored
If an initializer is a NaryOperation, its position ends up as a start position of a Scope, and a DCHECK used to fire. Interestingly, this was not caught by our existing tests. BUG=chromium:791256 Change-Id: Id47f850c7ad17ca580352f9bd56c9567b485c3b8 Reviewed-on: https://chromium-review.googlesource.com/822093Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#50051}
-
Clemens Hammacher authored
This is a reland of fa18e78d. Mips compile error is fixed. Original change's description: > [wasm] [cleanup] Only pass information really needed > > Instead of always passing the MachineType, we can often just pass the > accessed memory size or the MachineRepresentation, which is less > information to pass and will simplify the upcoming refactoring for > memory operations in Liftoff. > > R=titzer@chromium.org > > Bug: v8:6600 > Change-Id: I8748f8e00dcfdbc4082893143fe88bdafde99053 > Reviewed-on: https://chromium-review.googlesource.com/822194 > Reviewed-by: Ben Titzer <titzer@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50041} TBR=titzer@chromium.org Bug: v8:6600 Change-Id: I3dff3072d6ceebd74873ace0c7dce7cccc3055d5 Reviewed-on: https://chromium-review.googlesource.com/822851Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50050}
-
Eugene Ostroukhov authored
This method is needed by some Blink agents to generate object previews. Bug: Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I2304a6e44ea65ec469f3a3216b8bed789f706d0c Reviewed-on: https://chromium-review.googlesource.com/821596Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Eugene Ostroukhov <eostroukhov@chromium.org> Cr-Commit-Position: refs/heads/master@{#50049}
-
Clemens Hammacher authored
This reverts commit ee106cb9. Reason for revert: Still failing on big endian mips. Original change's description: > Reland "[wasm] [cleanup] Only pass information really needed" > > This is a reland of fa18e78d. > > Mips compile error is fixed. > > Original change's description: > > [wasm] [cleanup] Only pass information really needed > > > > Instead of always passing the MachineType, we can often just pass the > > accessed memory size or the MachineRepresentation, which is less > > information to pass and will simplify the upcoming refactoring for > > memory operations in Liftoff. > > > > R=titzer@chromium.org > > > > Bug: v8:6600 > > Change-Id: I8748f8e00dcfdbc4082893143fe88bdafde99053 > > Reviewed-on: https://chromium-review.googlesource.com/822194 > > Reviewed-by: Ben Titzer <titzer@chromium.org> > > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#50041} > > TBR=titzer@chromium.org > > Bug: v8:6600 > Change-Id: Ia2c47464277a7c7a70099e7f7d6e32003e34d87e > Reviewed-on: https://chromium-review.googlesource.com/822342 > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50047} TBR=titzer@chromium.org,clemensh@chromium.org Change-Id: I448e3ad433451fb468c2db66b4b297e8c72a8c69 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6600 Reviewed-on: https://chromium-review.googlesource.com/822696Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50048}
-
Clemens Hammacher authored
This is a reland of fa18e78d. Mips compile error is fixed. Original change's description: > [wasm] [cleanup] Only pass information really needed > > Instead of always passing the MachineType, we can often just pass the > accessed memory size or the MachineRepresentation, which is less > information to pass and will simplify the upcoming refactoring for > memory operations in Liftoff. > > R=titzer@chromium.org > > Bug: v8:6600 > Change-Id: I8748f8e00dcfdbc4082893143fe88bdafde99053 > Reviewed-on: https://chromium-review.googlesource.com/822194 > Reviewed-by: Ben Titzer <titzer@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50041} TBR=titzer@chromium.org Bug: v8:6600 Change-Id: Ia2c47464277a7c7a70099e7f7d6e32003e34d87e Reviewed-on: https://chromium-review.googlesource.com/822342Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50047}
-
Ben L. Titzer authored
This operation was used to implement asm.js stores, but is obsolete with asm.js stores now being lowered to normal graph nodes. R=mstarzinger@chromium.org CC=jarin@chromium.org Bug: Change-Id: Iea90b1a62be2e273c0562058642adc5b63ae2cf8 Reviewed-on: https://chromium-review.googlesource.com/822570 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#50046}
-
Georg Neis authored
This is a reland of c3bd741e Original change's description: > Fix "this" value in lazily-parsed module functions. > > When preparsing top-level functions in a module, we didn't track > unresolved variables. Consequently, "this" ended up referencing > the global "this", which has the wrong value (in a module "this" > is supposed to be the undefined value). > > This patch fixes that. This also lets us stop forcing context > allocation of all variables in module scopes, which the patch > takes care of as well. > > Bug: chromium:791334 > Change-Id: Ifac1f1adc033f3facfb3d29dd4bca32ee27bffcf > Reviewed-on: https://chromium-review.googlesource.com/808938 > Reviewed-by: Marja Hölttä <marja@chromium.org> > Reviewed-by: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50025} TBR=adamk@chromium.org TBR=kozyatinskiy@chromium.org Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Bug: chromium:791334 Change-Id: I57acc7b84a345565b36cbb55924fa2ff9b449eec Reviewed-on: https://chromium-review.googlesource.com/822341 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#50045}
-
Ben L. Titzer authored
The CheckedLoad and CheckedStore machine operators are a form of macro node used in the backend of TurboFan. They express bounds-checked accesses to typed arrays in the asm.js style. While their semantics can be expressed as normal machine operations and branches in the graph, they were originally used to save compile time when graphs were very big. ASM->WASM->TF graphs are smaller. This CL implements asm.js bounds checks for stores using normal branch nodes and removes the need for CheckedStore, improving maintainability at some small cost to compilation time. R=mstarzinger@chromium.org CC=bradnelson@chromium.org Bug: Change-Id: I928689cfe33acac5a422f32cb014850ba09196f1 Reviewed-on: https://chromium-review.googlesource.com/822471 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#50044}
-
Michael Achenbach authored
This reverts commit fa18e78d. Reason for revert: https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/14055 Original change's description: > [wasm] [cleanup] Only pass information really needed > > Instead of always passing the MachineType, we can often just pass the > accessed memory size or the MachineRepresentation, which is less > information to pass and will simplify the upcoming refactoring for > memory operations in Liftoff. > > R=titzer@chromium.org > > Bug: v8:6600 > Change-Id: I8748f8e00dcfdbc4082893143fe88bdafde99053 > Reviewed-on: https://chromium-review.googlesource.com/822194 > Reviewed-by: Ben Titzer <titzer@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50041} TBR=titzer@chromium.org,clemensh@chromium.org Change-Id: I3c85e3bc9b37c97b373b5e51a094be9561767f86 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6600 Reviewed-on: https://chromium-review.googlesource.com/822850Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#50043}
-
Junliang Yan authored
Port 7a159da1 R=ishell@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I669b665d7ef00dc6dcc80936d460e12c80bc1eb6 Reviewed-on: https://chromium-review.googlesource.com/818123Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#50042}
-
Clemens Hammacher authored
Instead of always passing the MachineType, we can often just pass the accessed memory size or the MachineRepresentation, which is less information to pass and will simplify the upcoming refactoring for memory operations in Liftoff. R=titzer@chromium.org Bug: v8:6600 Change-Id: I8748f8e00dcfdbc4082893143fe88bdafde99053 Reviewed-on: https://chromium-review.googlesource.com/822194Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50041}
-
Ulan Degenbaev authored
Currently Page::ShrinkToHighWaterMark checks that there is only one filler in the to-be-freed area at the end of the page. This does not hold if an allocation observer is active. We should instead check that the to-be-freed area does not contain allocated objects and will not contain allocated objects: 1) Following chain of fillers we arrive at the end of the page. 2) The free list of the page is empty. This patch also changes PagedSpace::ResetFreeList to evict free list entries of each page, instead of just reseting the global free list. It also removes invalidation of free list categories. Now FreeList::EvictFreeListItems simply evicts free list entries without invalidating free list categories. Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I6051578ec2c91c9614d14c7a6ce188d2db5ace3b Reviewed-on: https://chromium-review.googlesource.com/822571 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#50040}
-
Clemens Hammacher authored
Instead of specializing {DecodeLoadMem} and {DecodeStoreMem} for prefixed opcodes, just pass the offset as parameter. R=titzer@chromium.org Change-Id: I0581f6e9cb562885709aaa0317bb550b175ad160 Reviewed-on: https://chromium-review.googlesource.com/822391Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50039}
-