- 11 Jul, 2017 9 commits
-
-
Sathya Gunasekaran authored
This patch changes the backing store of slow properties to be a new instance type called PropertyArray. Currently the only difference between this and a FixedArray is the map. A future patch will change the length property to store the hash code. Bug: v8:5717, v8:6404 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Iaebc98f42e6d93c1392772e6f837787beb64afec Reviewed-on: https://chromium-review.googlesource.com/539028Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#46569}
-
Camillo Bruni authored
Change-Id: Id3989d09f6adfb934842a9b0761d811117d69993 Reviewed-on: https://chromium-review.googlesource.com/567003 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46568}
-
Georg Neis authored
This reverts commit 7b080310. Reason for revert: There's still another issue. Original change's description: > Reland "[compiler] Move the main pipeline's code assembly pass into the background." > > This is a reland of 66b54ab1 > Original change's description: > > [compiler] Move the main pipeline's code assembly pass into the background. > > > > R=bmeurer@chromium.org > > > > Bug: v8:6048 > > Change-Id: I60bc35c02b5460416c3b0e2872fc72ebf9b808a5 > > Reviewed-on: https://chromium-review.googlesource.com/563386 > > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > > Commit-Queue: Georg Neis <neis@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#46499} > > TBR=bmeurer@chromium.org > > Bug: v8:6048 > Change-Id: Ic841abc893c96271dc4dec7a0d19ba6a8b39164e > Reviewed-on: https://chromium-review.googlesource.com/565140 > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46563} TBR=neis@chromium.org Change-Id: I07ac9d44324d7cfed72531c7084bc8ba9ddef799 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6048 Reviewed-on: https://chromium-review.googlesource.com/567059Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46565}
-
Georg Neis authored
This is a reland of 66b54ab1 Original change's description: > [compiler] Move the main pipeline's code assembly pass into the background. > > R=bmeurer@chromium.org > > Bug: v8:6048 > Change-Id: I60bc35c02b5460416c3b0e2872fc72ebf9b808a5 > Reviewed-on: https://chromium-review.googlesource.com/563386 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46499} TBR=bmeurer@chromium.org Bug: v8:6048 Change-Id: Ic841abc893c96271dc4dec7a0d19ba6a8b39164e Reviewed-on: https://chromium-review.googlesource.com/565140Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46563}
-
Georg Neis authored
Port https://chromium-review.googlesource.com/559674. R=bmeurer@chromium.org Bug: v8:6048 Change-Id: Ia419f174a342d19a8cbd3581b9cad6d24e0fbe19 Reviewed-on: https://chromium-review.googlesource.com/566834Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46559}
-
Michael Starzinger authored
This fixes the lowering of Reflect.getPrototypeOf and friends to not perform a [[ToObject]] coercion, but bailout instead. We ensure to exclude primitive values from the lowering. This makes the lowering uniform between "Reflect.getPrototypeOf" and "Object.getPrototypeOf". R=bmeurer@chromium.org TEST=mjsunit/regress/regress-crbug-740116 BUG=chromium:740116 Change-Id: If986ee2a3ae4e8f1fd227bdeb4668f523b0dea84 Reviewed-on: https://chromium-review.googlesource.com/565295Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46556}
-
Benedikt Meurer authored
Add support for fast - get Map.prototype.size - get Set.prototype.size by porting both the baseline implementation to the CodeStubAssembler and inlining a fast-path into TurboFan (when the compiler can infer the fact that the receiver is a proper JSCollection from the surrounding graph, i.e. from feedback gathered by a dominating LOAD_IC). R=yangguo@chromium.org Bug: v8:5269, v8:5717 Change-Id: Ie003fd2551462591273bcb8487b80808dcc6cd82 Reviewed-on: https://chromium-review.googlesource.com/566438 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#46555}
-
Alexandre Talon authored
Each reducer now has a virtual reducer_name function, returning its name (the name of the class containing this reducer). This gets displayed when using the --trace_turbo_reduction flag. Also when using this flags more messages are displayed. Actually when a node is replaced in-place (which is called an update of the node), other reducers can still update it right after the in-place replacement. When a node is really replaced (not in-place), then we stop trying to apply reducers to it before we propagate the reduction through the relevant nodes. Before a message got printed only for the last reduction it went through. So in case a node was reduced in-place several times in a row, only the last update was printed, or none at all if after being reduced in-place it got reduced by being replaced by another node: only the non-in-place replacement was showed. Now each time an in-place reduction is applied to a node, a message gets printed. Bug: Change-Id: Id0f816fecd44c01d0253966c6decc4861be0c2fa Reviewed-on: https://chromium-review.googlesource.com/563365Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Alexandre Talon <alexandret@google.com> Cr-Commit-Position: refs/heads/master@{#46552}
-
Jaroslav Sevcik authored
BUG=v8:6410 Change-Id: I140eb9c79a7bf22b71c175fe152473d8bb8e7a76 Reviewed-on: https://chromium-review.googlesource.com/563694Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46549}
-
- 10 Jul, 2017 17 commits
-
-
Karl Schimpf authored
This Cl fixes a fundamental misunderstanding when Wasm memory histograms were added. They were added using HISTOGRAM_MEMORY_LIST(). This macro implements aggregating memory histograms that handle cases memory cases that are not module specific. The fixed memory histograms are all module specific, and are simple histograms. In addition, it removes field is_sync from ModuleCompiler and WasmCompilationUnit, since the field is no longer needed to make the fixed memory histograms synchronous. Bug: v8:6361 Change-Id: I696109b4fd1a4aadc87a6bdbbc4b7daefd58ea51 Reviewed-on: https://chromium-review.googlesource.com/565349Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Commit-Queue: Karl Schimpf <kschimpf@chromium.org> Cr-Commit-Position: refs/heads/master@{#46541}
-
Benedikt Meurer authored
This improves the general Array constructor call performance (w/o usable AllocationSite feedback) in TurboFan by ~2x, i.e. for example invoking the Array constructor like this var a = Array.call(undefined, n); instead of var a = Array(n); such that the CallIC doesn't know that it's eventually calling the Array constructor. It also thus changes the single argument Array constructor to always return holey arrays. Previously the single argument case for the Array constructor was somehow trying to dynamically detect 0 and in that case returned a packed array instead of a holey one. That adds quite a lot of churn, and doesn't seem to be very useful, especially since this might lead to unnecessary feedback pollution later. R=mvstanton@chromium.org Bug: v8:2229, v8:5269, v8:6399 Change-Id: I3d7cb9bd975ec0e491e3cdbcf1230185cfd1e3de Reviewed-on: https://chromium-review.googlesource.com/565721Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46538}
-
Enrico Bacis authored
The use of double variables to store bit patterns may lead to bit flips when the stored bit pattern is a signaling NaN (sNaN). Operations on a sNaN variable (even just returning the variable from a function) may turn it into a quiet NaN (qNaN), flipping the signaling bit and affecting the information stored in the variable. We observed this behaviour on ia32 architectures and therefore in the simulator builds for other platforms. The use of the wrapper class Double should prevent this behaviour. R=ahaas@chromium.org Change-Id: Ibd1119924a59db771fd4c250689ad9c2a35fff75 Reviewed-on: https://chromium-review.googlesource.com/562771Reviewed-by:
Jaideep Bajwa <bjaideep@ca.ibm.com> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Enrico Bacis <enricobacis@google.com> Cr-Commit-Position: refs/heads/master@{#46533}
-
Tobias Tebbi authored
This unconditional check caused a lot of canary crashes and recently stable merges while not being necessary for security. For code health and maintenance of Turbofan, it should be sufficient if this is only triggered in Clusterfuzz. Bug: chromium:726638 Change-Id: Ib58d9c18f89939164cae19223fda490addbce007 Reviewed-on: https://chromium-review.googlesource.com/557867Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#46532}
-
Karl Schimpf authored
That is, change to use TimedHistogram (which functions properly on background threads). Bug: v8:6361 Change-Id: I821fb0afea97be422786778d576683f67667c31b Reviewed-on: https://chromium-review.googlesource.com/559769 Commit-Queue: Karl Schimpf <kschimpf@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#46529}
-
Ivica Bogosavljevic authored
Port 040fa06f Port 659e8f7b Bug: Change-Id: Ie08d65ff6647f8a15127a065e7224b5b5cec09a4 Reviewed-on: https://chromium-review.googlesource.com/558294 Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46525}
-
Georg Neis authored
Port https://chromium-review.googlesource.com/c/519267/. R=bmeurer@chromium.org Bug: v8:6048 Change-Id: Ic94a12b30967fd26ebfa0c6752475d0c013f81e4 Reviewed-on: https://chromium-review.googlesource.com/565400Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46514}
-
Daniel Clifford authored
BUG=v8:1956 LOG=N R=bmeurer@chromium.org Change-Id: I190002227d3321df0f68e77f3b7b0a468446c493 Reviewed-on: https://chromium-review.googlesource.com/561011 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46513}
-
Jaroslav Sevcik authored
This introduces a new builtin (MapLookupHashIndex) and uses it in Turbofan to compute Map.p.get and Map.p.has. I have also refactored the existing CSA builtins for Map.p.get and Map.p.has to use the new builtin under the hood. The code for the lookup has been also improved. - Specialized lookups for smis, strings, heap numbers and everything else. - the advantage is that we can use fast equalities for the lookup. - strings can likely be optimized further if we care about the internalized string fast case. - Instead of a call to runtime to get the hash code, we now call C directly. In the Turbofan implementation itself, there are no special optimizations yet. The next step is to teach load elimination to reuse the indexes from previous calls of MapLookupHashIndex. BUG=v8:6410 Change-Id: I0b1a70493eb031d444e51002f6b2cc1f30ea2b68 Reviewed-on: https://chromium-review.googlesource.com/560169Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46510}
-
Georg Neis authored
RootCanBeTreatedAsConstant checks that the object is not in new space. This check is not thread-safe and, moreover, makes no sense in Turbofan. R=bmeurer@chromium.org Bug: v8:6048 Change-Id: I6df682ceef1508c33d5f32bd0d5bf25828e8c88f Reviewed-on: https://chromium-review.googlesource.com/565259 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46509}
-
Camillo Bruni authored
Bug: v8:6211 Change-Id: Iab0e787e7d9abfb9f24cd77276e1c00cc2e165a7 Reviewed-on: https://chromium-review.googlesource.com/561456 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#46507}
-
Georg Neis authored
This reverts commit 66b54ab1. Reason for revert: TSAN unhappy. Original change's description: > [compiler] Move the main pipeline's code assembly pass into the background. > > R=bmeurer@chromium.org > > Bug: v8:6048 > Change-Id: I60bc35c02b5460416c3b0e2872fc72ebf9b808a5 > Reviewed-on: https://chromium-review.googlesource.com/563386 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46499} TBR=neis@chromium.org,bmeurer@chromium.org Change-Id: I84ac8ad92c98ebe541e04529cda2b7e1eb07eafc No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6048 Reviewed-on: https://chromium-review.googlesource.com/564421Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46502}
-
Juliana Franco authored
Extend the deoptimization jump-table in optimized code objects to also contain entries for lazy deoptimization exits, and introduce a trampoline pc in the DeoptimizationInputData, which maps back from the return-site to the jump-table offset. Bug: v8:6562, v8:6561 Change-Id: Id085d5467e3ceff251c2ec2768329a9e22c0aff6 Reviewed-on: https://chromium-review.googlesource.com/563403 Commit-Queue: Juliana Patricia Vicente Franco <jupvfranco@google.com> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#46501}
-
Georg Neis authored
R=bmeurer@chromium.org Bug: v8:6048 Change-Id: I60bc35c02b5460416c3b0e2872fc72ebf9b808a5 Reviewed-on: https://chromium-review.googlesource.com/563386Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46499}
-
Benedikt Meurer authored
This is the next step towards faster Map and Set iteration. It introduces the appropriate instance types for Map and Set iterators (following the pattern for Array iterators) and migrates the following builtins to the CodeStubAssembler: - Set.prototype.entries - Set.prototype.values - Map.prototype.entries - Map.prototype.keys - Map.prototype.values - %SetIteratorPrototype%.next - %MapIteratorPrototype%.next This already provides a significant performance boost for regular for-of iteration of Sets and Maps, by a factor of 5-10 depending on the input. The final step will be to inline some fast-paths into TurboFan. Drive-by-fix: Remove obsolete %IsJSSetIterator and %IsJSMapIterator intrinsics and runtime functions. TBR=jgruber@chromium.org Bug: v8:6344, v8:6571, chromium:740122 Change-Id: I3ab0ee49e2afe8d4295707a5ecbd51adda621918 Reviewed-on: https://chromium-review.googlesource.com/563626 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46497}
-
Miran.Karic authored
The CL adds optimizations to MipsCtz and MipsPopcnt for mips32 and to Mips64Ctz, Mips64Dctz, Mips64Popcnt and Mips64Dpopcnt for mips64 in code generator. BUG= Change-Id: I080d4eca6b8521c3d01d727b883f3efa9876b7a1 Reviewed-on: https://chromium-review.googlesource.com/563197Reviewed-by:
Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Commit-Queue: Miran Karić <Miran.Karic@imgtec.com> Cr-Commit-Position: refs/heads/master@{#46496}
-
Michael Achenbach authored
This reverts commit 3f22832b. Reason for revert: Layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/16849 Original change's description: > [builtins] Port Map and Set iterators to CodeStubAssembler. > > This is the next step towards faster Map and Set iteration. It > introduces the appropriate instance types for Map and Set > iterators (following the pattern for Array iterators) and migrates > the following builtins to the CodeStubAssembler: > > - Set.prototype.entries > - Set.prototype.values > - Map.prototype.entries > - Map.prototype.keys > - Map.prototype.values > - %SetIteratorPrototype%.next > - %MapIteratorPrototype%.next > > This already provides a significant performance boost for regular > for-of iteration of Sets and Maps, by a factor of 5-10 depending > on the input. The final step will be to inline some fast-paths > into TurboFan. > > Drive-by-fix: Remove obsolete %IsJSSetIterator and %IsJSMapIterator > intrinsics and runtime functions. > > Bug: v8:6571, chromium:740122 > Change-Id: Iad7a7dec643d8f8b5799327f89a351108ae856bf > Reviewed-on: https://chromium-review.googlesource.com/563399 > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46492} TBR=jgruber@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:6571, chromium:740122 Change-Id: Iadb48d72e3b85ec8ad880e50ab7912c5502caf07 Reviewed-on: https://chromium-review.googlesource.com/564419Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46495}
-
- 08 Jul, 2017 1 commit
-
-
Benedikt Meurer authored
This is the next step towards faster Map and Set iteration. It introduces the appropriate instance types for Map and Set iterators (following the pattern for Array iterators) and migrates the following builtins to the CodeStubAssembler: - Set.prototype.entries - Set.prototype.values - Map.prototype.entries - Map.prototype.keys - Map.prototype.values - %SetIteratorPrototype%.next - %MapIteratorPrototype%.next This already provides a significant performance boost for regular for-of iteration of Sets and Maps, by a factor of 5-10 depending on the input. The final step will be to inline some fast-paths into TurboFan. Drive-by-fix: Remove obsolete %IsJSSetIterator and %IsJSMapIterator intrinsics and runtime functions. Bug: v8:6571, chromium:740122 Change-Id: Iad7a7dec643d8f8b5799327f89a351108ae856bf Reviewed-on: https://chromium-review.googlesource.com/563399 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46492}
-
- 07 Jul, 2017 7 commits
-
-
Mike Stanton authored
Change-Id: Ie83b4180100f5000af6227525ac25312ec3527cf Reviewed-on: https://chromium-review.googlesource.com/563310Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#46481}
-
Mythri authored
When there are some changes in the graph, we mark the uses of the reduced node for revisiting. These are pushed onto a stack and hence follow a depth first traversal. This sometimes leads to propogating the changes down the graph and again revisiting the entire graph because of the nodes that were marked for revisit earlier. Bug: chromium:725664 Change-Id: I036fd7096c422565a2851b109aba2b4c438403c0 Reviewed-on: https://chromium-review.googlesource.com/563301Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Mythri Alle <mythria@google.com> Cr-Commit-Position: refs/heads/master@{#46480}
-
Georg Neis authored
This CL introduces TurboAssembler, a super-class of Assembler and sub-class of MacroAssembler. TurboAssembler contains all the functionality that is used by Turbofan and previously was part of MacroAssembler. TurboAssembler has access to the isolate but, in contrast to MacroAssembler, does not expect to be running on the main thread. Bug: v8:6048 Change-Id: If5693f56a45fe057e5011168e830d01a3f2f772d Reviewed-on: https://chromium-review.googlesource.com/559674Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46477}
-
titzer authored
This CL refactors the internal representation of JavaScript-exposed WebAssembly objects to be more like other such objects in V8. By introducing a new instance type for each of the JS-exposed types, we get more robust typechecking without using embedder fields (which were previously used when these objects where instance type JS_API_OBJECT). In addition to the new instance types, the subclasses X of JSObject (WasmInstanceObject, WasmMemoryObject, WasmModuleObject, WasmTableObject) now have appropriate Is##X() methods on Object and are now robust. BUG=v8:6547 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2964943002 Cr-Commit-Position: refs/heads/master@{#46475}
-
Andreas Haas authored
This CL changes for floats what https://chromium-review.googlesource.com/c/558964/ changed for doubles. Original message: On x86, signalling NaNs get converted to quiet NaNs when they get push on the stack and popped again. This happens in the code generation for arm, specifically for the vmov instruction with the immediate parameter. This CL replaces the vmov function in assembler-arm to take the immediate as a uint64_t instead of a double, to guarantee that the bit pattern does not change even if the parameter is a signalling NaN. New in this CL: Although src/double.h existed already, src/float.h did not exist yet. I created the file in this CL, and moved the classes Float32 and Float64 there, which already existed in src/deoptimizer.h. R=titzer@chromium.org, martyn.capewell@arm.com, v8-arm-ports@googlegroups.com BUG=v8:6564 Change-Id: I6a3f1f154af9c8cd4bb8e7e856235d3eee5e9edd Reviewed-on: https://chromium-review.googlesource.com/561009 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Martyn Capewell <martyn.capewell@arm.com> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46473}
-
Juliana Franco authored
Replaced all occurrences of AstId with BytecodeOffset Change-Id: I5bee2d35ccd6e404748ba352e35f5982a7a9b392 Reviewed-on: https://chromium-review.googlesource.com/561007 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46472}
-
Pierre Langlois authored
The PrepareCallCFunction methods would take a scratch register as arguments when they can simply use ip. The reason to do this, apart from simplifying the code, is that TurboFan's code generator uses r9 as a scratch for this when it could just as well use ip. Bug: v8:6553 Change-Id: I0ed762d201f7ff8b8ed074da758227a8db95fca7 Reviewed-on: https://chromium-review.googlesource.com/558934Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#46465}
-
- 06 Jul, 2017 5 commits
-
-
Ross McIlroy authored
Adds constant folding for the StringConcat bytecode to NativeContextSpecialization. Can reduce operator to either a fully folded constant string, or a JSAdd or a StringConcat with a reduced number of operators. BUG=v8:6243, chromium:738312 Change-Id: I6b2be6a3d95230a23f3c7390a4f7be5181c49a2a Reviewed-on: https://chromium-review.googlesource.com/559146 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46461}
-
Ross McIlroy authored
Adds a CheckElimination reducer to eliminate checks which have become unecessary due to inlining of heap constants. BUG=v8:6243, chromium:738312 Change-Id: Ie50b274bd07c86466eead08b2f21d2b63dd9e01c Reviewed-on: https://chromium-review.googlesource.com/559129 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46460}
-
Georg Neis authored
... so that it can be used during off-thread code assembly. R=bmeurer@chromium.org Bug: v8:6048 Change-Id: Iaa9b534b23d02da69c2b2395c1eacfdcffb3ac2f Reviewed-on: https://chromium-review.googlesource.com/561677Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46455}
-
Benedikt Meurer authored
This is the first step in optimizing Map and Set iterators. This ports all the base functionality including - Set.prototype.entries - Set.prototype.values - %SetPrototypeIterator%.next - Map.prototype.entries - Map.prototype.keys - Map.prototype.values - %MapPrototypeIterator%.next to C++ and removes all the dead code and the previous half JavaScript implementation. The next step is to port core parts to CodeStubAssembler and finally inline the fast-paths into TurboFan directly. The relevant design document is at: https://docs.google.com/document/d/13z1fvRVpe_oEroplXEEX0a3WK94fhXorHjcOMsDmR-8 Most of this work is very similar to how the Array iterator works and we mostly follow the same process for the implementation. R=jgruber@chromium.org Bug: v8:6571 Change-Id: Ieb253d6705ba4077c697a5ff0cb6f87f9c4056ff Reviewed-on: https://chromium-review.googlesource.com/561138Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46441}
-
Georg Neis authored
Remove all IsHeapObject/IsSmi checks from assembler and also from the macro-assembler functions that Turbofan code generation uses. Note for porters: In case it's unclear which macro-assembler functions need to be modified, it may be best to wait until I split MacroAssembler in a followup-CL, which will make that clear. Bug: v8:6048 Change-Id: Ife0735cc6f48713c9ec493faf2dac5e553d1c06b Reviewed-on: https://chromium-review.googlesource.com/561015 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46436}
-
- 05 Jul, 2017 1 commit
-
-
Andreas Haas authored
On x86, signalling NaNs get converted to quiet NaNs when they get push on the stack and popped again. This happens in the code generation for arm, specifically for the vmov instruction with the immediate parameter. This CL replaces the vmov function in assembler-arm to take the immediate as a uint64_t instead of a double, to guarantee that the bit pattern does not change even if the parameter is a signalling NaN. BUG=v8:6564 Change-Id: I062559f9a7ba8b0f560628e5c39621ca578c3e7d Reviewed-on: https://chromium-review.googlesource.com/558964 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Martyn Capewell <martyn.capewell@arm.com> Cr-Commit-Position: refs/heads/master@{#46418}
-