- 11 Sep, 2020 1 commit
-
-
Georg Neis authored
... by unparking the local heap before accessing the handles. Bug: v8:7790 Change-Id: I0910fd8ad2a1e9cbbf312acb4f26358a09891f0f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2404455Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Auto-Submit: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69852}
-
- 22 Jan, 2020 1 commit
-
-
Georg Neis authored
... and consult it there from the various reducers. The flag makes no sense without the broker and the reducers already have access to the broker, so we can avoid an additional flag per reducer. Bug: v8:7790 Change-Id: I448050a55951b94d5313c1a79a502be906b98b25 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2013108 Auto-Submit: Georg Neis <neis@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#65918}
-
- 09 Jan, 2020 1 commit
-
-
Maya Lekova authored
Bug: v8:7790 Change-Id: Idf066adcd5c3dca3004e2eaa0d8fa389755720af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1991490Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#65671}
-
- 21 Aug, 2019 1 commit
-
-
Georg Neis authored
Bug: v8:7790 Change-Id: I9a770fd6861c216121aef88f0119698edc0e224e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1763537 Commit-Queue: Georg Neis <neis@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Auto-Submit: Georg Neis <neis@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#63316}
-
- 17 Jul, 2019 1 commit
-
-
Tobias Tebbi authored
This adds a simple counter to Turbofan that's incremented throughout the compilation, hopefully frequently enough so we can use it to detect divergence and performance bugs. In addition, we assert that this counter never gets too high. That's the equivalent of a simple timeout, just more deterministic. The limitations on Turbofan input size should guarantee that we never exceed this limit. Since we probably do exceed it rarely, this check is only a DCHECK and intended to detect performance and divergence issues, but not supposed to be performed in release builds. In addition, this CL adds UMA stats to observe the real world distribution of the tick measurement. Bug: v8:9444 Change-Id: I182dac6ecac64715e3f5885ff5c7c17549351cd0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1695475 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#62754}
-
- 21 May, 2019 1 commit
-
-
Simon Zünd authored
This CL also removes the corresponding intrinsic lowering of IsTypedArray in TurboFan and Ignition. Drive-by: Remove unused ArrayBufferViewWasDetached runtime function. Bug: v8:9183 Change-Id: I2767b22fbdfb679cba30b9fbc555c8d41c7f4345 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617930Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#61677}
-
- 17 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: I7d885f0e2ba3cdf97de190166dc4cdd24dc0c11e Reviewed-on: https://chromium-review.googlesource.com/1224091 Commit-Queue: Florian Sattler <sattlerf@google.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55956}
-
- 18 Oct, 2017 1 commit
-
-
Mike Stanton authored
We didn't correctly maintain the effect chain between the load of the map and the load of the instance type from the map. Bug: v8:6929 Change-Id: I970709fe74483c5cdef3d0cea36bb9e1dc98b40e Reviewed-on: https://chromium-review.googlesource.com/725424Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#48690}
-
- 10 Aug, 2017 1 commit
-
-
Ross McIlroy authored
Deletes AstGraphBuilder and associated classes now that it is unreachable. The following classes are also removed: - ControlBuilders - JSFrameSpecialization - AstLoopAssignmentAnalysis Also removes flags from compilation-info which are no longer used, and removes the no-deoptimization paths from TypedOptimization, JsTypedLowering, JSIntrinsicLowering and JSBuiltinLowering. BUG=v8:6409 Change-Id: I63986e8e3497bf63c4a27ea8ae827b8a633d4a26 Reviewed-on: https://chromium-review.googlesource.com/583652 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47284}
-
- 08 May, 2017 1 commit
-
-
mvstanton authored
Intrinsic and generic lowering for generator object creation. In a follow-on, create lowering will be addressed. BUG=v8:6352 Review-Url: https://codereview.chromium.org/2862213002 Cr-Commit-Position: refs/heads/master@{#45171}
-
- 09 Jan, 2017 1 commit
-
-
jgruber authored
The two remaining uses of this intrinsic in debug.js and mirrors.js now simply rely on the runtime function. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2591923003 Cr-Original-Commit-Position: refs/heads/master@{#41892} Committed: https://chromium.googlesource.com/v8/v8/+/c9cb94a06fa7a863d24dd6760b66cecd55748abf Review-Url: https://codereview.chromium.org/2591923003 Cr-Commit-Position: refs/heads/master@{#42128}
-
- 22 Dec, 2016 1 commit
-
-
hablich authored
Revert of [regexp] Remove IsRegExp intrinsic (patchset #1 id:1 of https://codereview.chromium.org/2591923003/ ) Reason for revert: speculative revert: https://codereview.chromium.org/2596013002/ Original issue's description: > [regexp] Remove IsRegExp intrinsic > > The two remaining uses of this intrinsic in debug.js and mirrors.js now > simply rely on the runtime function. > > BUG=v8:5339 > > Review-Url: https://codereview.chromium.org/2591923003 > Cr-Commit-Position: refs/heads/master@{#41892} > Committed: https://chromium.googlesource.com/v8/v8/+/c9cb94a06fa7a863d24dd6760b66cecd55748abf TBR=bmeurer@chromium.org,jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5339 Review-Url: https://codereview.chromium.org/2592383002 Cr-Commit-Position: refs/heads/master@{#41915}
-
- 21 Dec, 2016 1 commit
-
-
jgruber authored
The two remaining uses of this intrinsic in debug.js and mirrors.js now simply rely on the runtime function. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2591923003 Cr-Commit-Position: refs/heads/master@{#41892}
-
- 25 Jul, 2016 1 commit
-
-
bmeurer authored
Introducing machine operators early causes trouble for the typing, truncation analysis and representation selection, so we should rather stick to simplified operators instead. Now there's only the for-in case left, which is not clear how we can handle this in a better way. Drive-by-fix: Also don't introduce Int32Constant and Word32Shl in JSTypedLowering, but use NumberConstant and proper NumberShiftLeft operators instead. R=jarin@chromium.org BUG=chromium:630951 Review-Url: https://codereview.chromium.org/2182453002 Cr-Commit-Position: refs/heads/master@{#38008}
-
- 05 Jul, 2016 3 commits
-
-
bmeurer authored
This drops the %_ValueOf intrinsic, but keeps the runtime entry %ValueOf for now, by either migrating the functionality (mostly Debug mirror or toString/valueOf methods) to C++ or TurboFan builtins, or switching to the %ValueOf runtime call when it's not performance critical anyways. The %_ValueOf intrinsic was one of the last blockers for fixing the unsound machine operator typing in TurboFan. R=yangguo@chromium.org BUG=v8:5049 Committed: https://crrev.com/293bd7882987f00e465710ce468bfb1eaa7d3fa2 Review-Url: https://codereview.chromium.org/2126453002 Cr-Original-Commit-Position: refs/heads/master@{#37512} Cr-Commit-Position: refs/heads/master@{#37519}
-
machenbach authored
Revert of [intrinsic] Drop the %_ValueOf intrinsic. (patchset #2 id:20001 of https://codereview.chromium.org/2126453002/ ) Reason for revert: [Sheriff] Breaks without i18n: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20noi18n%20-%20debug/builds/8466 Original issue's description: > [intrinsic] Drop the %_ValueOf intrinsic. > > This drops the %_ValueOf intrinsic, but keeps the runtime entry > %ValueOf for now, by either migrating the functionality (mostly > Debug mirror or toString/valueOf methods) to C++ or TurboFan > builtins, or switching to the %ValueOf runtime call when it's > not performance critical anyways. > > The %_ValueOf intrinsic was one of the last blockers for fixing > the unsound machine operator typing in TurboFan. > > R=yangguo@chromium.org > BUG=v8:5049 > > Committed: https://crrev.com/293bd7882987f00e465710ce468bfb1eaa7d3fa2 > Cr-Commit-Position: refs/heads/master@{#37512} TBR=yangguo@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5049 Review-Url: https://codereview.chromium.org/2117273002 Cr-Commit-Position: refs/heads/master@{#37514}
-
bmeurer authored
This drops the %_ValueOf intrinsic, but keeps the runtime entry %ValueOf for now, by either migrating the functionality (mostly Debug mirror or toString/valueOf methods) to C++ or TurboFan builtins, or switching to the %ValueOf runtime call when it's not performance critical anyways. The %_ValueOf intrinsic was one of the last blockers for fixing the unsound machine operator typing in TurboFan. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2126453002 Cr-Commit-Position: refs/heads/master@{#37512}
-
- 29 Jun, 2016 1 commit
-
-
bmeurer authored
The only real use case left for TypeGuard was the renaming inside the LoadElimination, but this case only occurs in dead code (guarded by a previous Check), so it's not relevant, and we can drop the TypeGuard operator completely. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2108793003 Cr-Commit-Position: refs/heads/master@{#37361}
-
- 20 Jun, 2016 1 commit
-
-
bmeurer authored
Import base::ieee754::tan() from fdlibm and introduce Float64Tan TurboFan operator based on that, similar to what we do for Float64Cos and Float64Sin. Rewrite Math.tan() as TurboFan builtin and use those operators to also inline Math.tan() into optimized TurboFan functions. Drive-by-fix: Kill the %_ConstructDouble intrinsics, and provide only the %ConstructDouble runtime entry for writing tests. BUG=v8:5086,v8:5126 R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2083453002 Cr-Commit-Position: refs/heads/master@{#37087}
-
- 25 May, 2016 1 commit
-
-
bmeurer authored
Caching nodes with mutable inputs is a bad idea and already blew up twice now, so in order to avoid further breakage, let's kill the EmptyFrameState caching on JSGraph completely and only cache the empty state values there. We can remove the hacking from JSTypedLowering completely once we have the PlainPrimitiveToNumber in action. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2006423003 Cr-Commit-Position: refs/heads/master@{#36511}
-
- 18 May, 2016 1 commit
-
-
bmeurer authored
The type guard should never be used after the effect/control linearization pass, so making it a simplified operator better expresses the intended use. Also this way none of the common operators actually has any dependency on the type system. Drive-by-fix: Properly print the type parameter to a TypeGuard operator. BUG=chromium:612142 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/1994503002 Cr-Commit-Position: refs/heads/master@{#36304}
-
- 17 May, 2016 1 commit
-
-
bmeurer authored
This adds back the instanceof operator support in the backends and introduces a @@hasInstance protector cell on the isolate that guards the fast path for the InstanceOfStub. This way we recover the ~10% regression on Octane EarleyBoyer in Crankshaft and greatly improve TurboFan and Ignition performance of instanceof. R=ishell@chromium.org TBR=hpayer@chromium.org,rossberg@chromium.org BUG=chromium:597249, v8:4447 LOG=n Review-Url: https://codereview.chromium.org/1980483003 Cr-Commit-Position: refs/heads/master@{#36275}
-
- 01 Apr, 2016 1 commit
-
-
bmeurer authored
This allows us to remove the troublesome %_MathClz32 intrinsic and also allows us to utilize the functionality that is already available in TurboFan. Also introduce a proper NumberClz32 operator so we don't need to introduce a machine operator at the JS level. R=epertoso@chromium.org Review URL: https://codereview.chromium.org/1852553003 Cr-Commit-Position: refs/heads/master@{#35208}
-
- 28 Mar, 2016 1 commit
-
-
bmeurer authored
This way we avoid the second deoptimization for the Math.floor and Math.ceil builtins when -0 is involved. We still deoptimize the inlined Crankshaft version in various cases, that's a separate issue. The algorithm used for implement CodeStubAssembler::Float64Floor is vaguely based on the fast math version used in the libm of various BSDs, but had to be reengineered to match the EcmaScript specification. R=epertoso@chromium.org BUG=v8:2890, v8:4059 LOG=n Review URL: https://codereview.chromium.org/1828253002 Cr-Commit-Position: refs/heads/master@{#35083}
-
- 22 Mar, 2016 2 commits
-
-
bmeurer authored
This CL adds support for builtins with JavaScript linkage written using the TurboFan CodeStubAssembler, but with a JSCall descriptor (which was already supported thanks to a previous patch by Ben Smith). As a first example, we convert the Math.sqrt builtin and thereby get rid of the %_MathSqrt intrinsic, which causes trouble for the representation selection pass in the JavaScript pipeline. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1824993002 Cr-Commit-Position: refs/heads/master@{#34989}
-
jarin authored
The CL also add guard nodes to places where we assume that certain values are numbers. Review URL: https://codereview.chromium.org/1821133002 Cr-Commit-Position: refs/heads/master@{#34977}
-
- 17 Mar, 2016 1 commit
-
-
mvstanton authored
This new intrinsic is used by the desugared ES6 instanceof implementation for the cases when the F[@@hasInstance] property is null or undefined. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1809993002 Cr-Commit-Position: refs/heads/master@{#34866}
-
- 17 Feb, 2016 1 commit
-
-
bmeurer authored
It's fine to only have the runtime call here, as it's only used in the debug mirror. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1699133002 Cr-Commit-Position: refs/heads/master@{#34056}
-
- 16 Feb, 2016 1 commit
-
-
bmeurer authored
Drive-by-fix: Remove the (now) unused %_SetValueOf and %_JSValueGetValue intrinsics from the various compilers and the runtime. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1698343002 Cr-Commit-Position: refs/heads/master@{#34037}
-
- 02 Feb, 2016 3 commits
-
-
bmeurer authored
Avoid the hacking in JSIntrinsicLowering and provide a proper simplified operator ObjectIsReceiver instead that is used to implement %_IsJSReceiver which is used by our JavaScript builtins and the JSInliner. R=jarin@chromium.org BUG=v8:4544 LOG=n Review URL: https://codereview.chromium.org/1657863004 Cr-Commit-Position: refs/heads/master@{#33675}
-
bmeurer authored
There's no point in having %_IsFunction as inline intrinsic, as it is only used in non performance critical code, which is already full of runtime calls anyway, so %IsFunction will do the trick as well. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1658123002 Cr-Commit-Position: refs/heads/master@{#33660}
-
jarin authored
This CL removes the Config templatization from the types. It is not necessary anymore, after the HeapTypes have been removed. The CL also changes the type hierarchy - the specific type kinds are not inner classes of the Type class and they do not inherit from Type. This is partly because it seems impossible to make this work without templates. Instead, a new TypeBase class is introduced and all the structural (i.e., non-bitset) types inherit from it. The bitset type still requires the bit-munging hack and some nasty reinterpret-casts to pretend bitsets are of type Type*. Additionally, there is now the same hack for TypeBase - all pointers to the sub-types of TypeBase are reinterpret-casted to Type*. This is to keep the type constructors in inline method definitions (although it is unclear how much that actually buys us). In future, we would like to move to a model where we encapsulate Type* into a class (or possibly use Type where we used to use Type*). This would loosen the coupling between bitset size and pointer size, and eventually we would be able to have more bits. TBR=bradnelson@chromium.org Review URL: https://codereview.chromium.org/1655833002 Cr-Commit-Position: refs/heads/master@{#33656}
-
- 27 Dec, 2015 2 commits
-
-
bmeurer authored
According to the ES2015 specification, bound functions are exotic objects, and thus don't need to be implemented as JSFunctions. So we introduce a new JSBoundFunction type to represent bound functions and make them optimizable. This already improves the performance of calling or constructing bound functions by 10-100x depending on the use case because we avoid the crazy dance between JavaScript and C++ that was implemented in v8natives.js previously. There's still room for improvement in the performance of actually creating bound functions, which is also relevant in practice, but we already have a plan how to accomplish that later. The mips/mips64 ports were contributed by akos.palfi@imgtec.com. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel BUG=chromium:535408, chromium:571299, v8:4629 LOG=n Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2 Cr-Commit-Position: refs/heads/master@{#33042} Review URL: https://codereview.chromium.org/1542963002 Cr-Commit-Position: refs/heads/master@{#33044}
-
bmeurer authored
Revert of [runtime] Introduce dedicated JSBoundFunction to represent bound functions. (patchset #14 id:260001 of https://codereview.chromium.org/1542963002/ ) Reason for revert: Breaks arm64 sim nosnap: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/805/steps/Check/logs/function-bind Original issue's description: > [runtime] Introduce dedicated JSBoundFunction to represent bound functions. > > According to the ES2015 specification, bound functions are exotic > objects, and thus don't need to be implemented as JSFunctions. So > we introduce a new JSBoundFunction type to represent bound functions > and make them optimizable. This already improves the performance of > calling or constructing bound functions by 10-100x depending on the > use case because we avoid the crazy dance between JavaScript and C++ > that was implemented in v8natives.js previously. > > There's still room for improvement in the performance of actually > creating bound functions, which is also relevant in practice, but > we already have a plan how to accomplish that later. > > The mips/mips64 ports were contributed by akos.palfi@imgtec.com. > > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel > BUG=chromium:535408, chromium:571299, v8:4629 > LOG=n > > Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2 > Cr-Commit-Position: refs/heads/master@{#33042} TBR=cbruni@chromium.org,hpayer@chromium.org,yangguo@chromium.org,akos.palfi@imgtec.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:535408, chromium:571299, v8:4629 Review URL: https://codereview.chromium.org/1552473002 Cr-Commit-Position: refs/heads/master@{#33043}
-
- 26 Dec, 2015 1 commit
-
-
bmeurer authored
According to the ES2015 specification, bound functions are exotic objects, and thus don't need to be implemented as JSFunctions. So we introduce a new JSBoundFunction type to represent bound functions and make them optimizable. This already improves the performance of calling or constructing bound functions by 10-100x depending on the use case because we avoid the crazy dance between JavaScript and C++ that was implemented in v8natives.js previously. There's still room for improvement in the performance of actually creating bound functions, which is also relevant in practice, but we already have a plan how to accomplish that later. The mips/mips64 ports were contributed by akos.palfi@imgtec.com. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel BUG=chromium:535408, chromium:571299, v8:4629 LOG=n Review URL: https://codereview.chromium.org/1542963002 Cr-Commit-Position: refs/heads/master@{#33042}
-
- 11 Dec, 2015 1 commit
-
-
bmeurer authored
Remove unused obsolete %_StringGetStringLength intrinsic, and properly optimize the %_SubString, %_RegExpExec, %_RegExpFlags, %_RegExpSource and %_RegExpConstructResult intrinsics. Review URL: https://codereview.chromium.org/1516753006 Cr-Commit-Position: refs/heads/master@{#32782}
-
- 10 Dec, 2015 1 commit
-
-
jarin authored
MachineType is now a class with two enum fields: - MachineRepresentation - MachineSemantic Both enums are usable on their own, and this change switches some places from using MachineType to use just MachineRepresentation. Most notably: - register allocator now uses just the representation. - Phi and Select nodes only refer to representations. Review URL: https://codereview.chromium.org/1513543003 Cr-Commit-Position: refs/heads/master@{#32738}
-
- 02 Dec, 2015 1 commit
-
-
bmeurer authored
We can constant fold %_IsJSReceiver(x) based on whether x is always a receiver or can never be a receiver. This is important as %_IsJSReceiver is inserted by the JSInliner. R=jarin@chromium.org BUG=v8:4544 LOG=n Review URL: https://codereview.chromium.org/1486383003 Cr-Commit-Position: refs/heads/master@{#32519}
-
- 30 Nov, 2015 1 commit
-
-
neis authored
This depends on issue 1476403004. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1479293002 Cr-Commit-Position: refs/heads/master@{#32401}
-
- 12 Nov, 2015 1 commit
-
-
bmeurer authored
Now JSIntrinsicLowering can also lower %_IsSpecObject intrinsics to a diamond. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1436943005 Cr-Commit-Position: refs/heads/master@{#31960}
-