- 13 Jun, 2016 3 commits
-
-
cbruni authored
Revert of Replace all remaining Oddball checks with new function (patchset #10 id:180001 of https://codereview.chromium.org/2043183003/ ) Reason for revert: failing tests Original issue's description: > Replace all remaining Oddball checks with new function > > This CL removes the IsUndefined() and Co. methods from Object and HeapObject. > The new method all take the isolate as parameter. > > BUG= > > Committed: https://crrev.com/ccefb3ae5fe967288d568013fb04e8761eafebc5 > Cr-Commit-Position: refs/heads/master@{#36921} TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2060213002 Cr-Commit-Position: refs/heads/master@{#36923}
-
mstarzinger authored
This makes the aforementioned visitation function independent of the target architecture by leveraging existing abstractions. R=mvstanton@chromium.org Review-Url: https://codereview.chromium.org/2060173002 Cr-Commit-Position: refs/heads/master@{#36922}
-
cbruni authored
This CL removes the IsUndefined() and Co. methods from Object and HeapObject. The new method all take the isolate as parameter. BUG= Review-Url: https://codereview.chromium.org/2043183003 Cr-Commit-Position: refs/heads/master@{#36921}
-
- 09 Jun, 2016 2 commits
-
-
adamk authored
Neither globals nor lookup slots can be hole-initialized anymore, thus removing some dead code from the code generators and runtime-scopes. Review-Url: https://codereview.chromium.org/2051073004 Cr-Commit-Position: refs/heads/master@{#36876}
-
jarin authored
This makes sure we do not compile ToNumber stub on demand. This makes it easier to use during concurrent compilation. Review-Url: https://codereview.chromium.org/2051113002 Cr-Commit-Position: refs/heads/master@{#36870}
-
- 06 Jun, 2016 1 commit
-
-
cbruni authored
Passing in the isolate and pointer compare the instnance against the corresponding constant is always faster than decoding the instance types. BUG= Review-Url: https://codereview.chromium.org/2028983002 Cr-Commit-Position: refs/heads/master@{#36744}
-
- 27 May, 2016 3 commits
-
-
bmeurer authored
This was initially used to special case some weird date.js behavior, but has since been abused in other areas. In case of the string character access, everything that is outside the Smi range cannot be a valid string index anyways, so %NumberToSmi is perfect here in either case, and for ToPositiveInteger it's better to just use ToInteger adding +0 to turn -0 into +0. R=ishell@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2010183003 Cr-Commit-Position: refs/heads/master@{#36545}
-
franzih authored
Rewrite decodeURI and decodeURIComponent as builtin functions and install them in the bootstrapper. Delete unused runtime functions: - TruncateString - NewString - OneByteSeqStringGetChar - OneByteSeqStringSetChar - TwoByteSeqStringGetChar - TwoByteSeqStringSetChar Add regression test for decoding large strings. Clusterfuzz detected a problem with %TruncateString, see https://bugs.chromium.org/p/chromium/issues/detail?id=612109#c6 This is automatically fixed by this rewrite because %TruncateString is deleted anyways. Crude benchmark on 585 decodeURI and decodeURIComponent tests averaged over five runs: * builtin functions real 0m9.69s user 2m39.8816s sys 0m12.6398s * JS functions calling into the runtime e.g., for %TruncateString real 0m11.0598s user 3m6.7026s sys 0m13.5756s By running: $ time tools/run-tests.py --arch=x64 --mode=Release --buildbot test262/built-ins/decodeURI* mjsunit/uri >>> Running tests for x64.Release BUG=v8:4912, chromium:612109 R=yangguo@chromium.org, bmeurer@chromium.org Review-Url: https://codereview.chromium.org/1994733003 Cr-Commit-Position: refs/heads/master@{#36543}
-
bmeurer authored
This intrinsic (and the matching runtime entry) are no longer used by now and can thereby be removed. BUG=v8:5049 Review-Url: https://codereview.chromium.org/2016993003 Cr-Commit-Position: refs/heads/master@{#36540}
-
- 18 May, 2016 1 commit
-
-
rmcilroy authored
In order to support compiling to baseline on return we need to be able to return to the actual return address. With this change this is what the Return bytecode now does, removing the need for the InterpreterExitTrampoline. This change also removes the InterpreterNotifyDeoptXXX builtins and unifies FCG and Igntion to both use NotifyDeoptXXX. As part of this change, FullCodegenerator::State is moved to Deoptimize::BailoutState. BUG=v8:4280 LOG=N Committed: https://crrev.com/34c9626e2ee56fe805de549697ca5323aed7cb66 Cr-Commit-Position: refs/heads/master@{#36288} Review-Url: https://codereview.chromium.org/1969423002 Cr-Commit-Position: refs/heads/master@{#36310}
-
- 17 May, 2016 4 commits
-
-
machenbach authored
Revert of [Interpreter] Remove InterpreterExitTrampoline and replace with returning to the entry trampoline. (patchset #6 id:170001 of https://codereview.chromium.org/1969423002/ ) Reason for revert: Breaks https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim/builds/619 Might only affect pure release builds? Original issue's description: > [Interpreter] Remove InterpreterExitTrampoline and replace with returning to the entry trampoline. > > In order to support compiling to baseline on return we need to be able to > return to the actual return address. With this change this is what the > Return bytecode now does, removing the need for the > InterpreterExitTrampoline. > > This change also removes the InterpreterNotifyDeoptXXX builtins and > unifies FCG and Igntion to both use NotifyDeoptXXX. As part of this > change, FullCodegenerator::State is moved to Deoptimize::BailoutState. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/34c9626e2ee56fe805de549697ca5323aed7cb66 > Cr-Commit-Position: refs/heads/master@{#36288} TBR=mstarzinger@chromium.org,oth@chromium.org,rmcilroy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review-Url: https://codereview.chromium.org/1986353002 Cr-Commit-Position: refs/heads/master@{#36294}
-
rmcilroy authored
In order to support compiling to baseline on return we need to be able to return to the actual return address. With this change this is what the Return bytecode now does, removing the need for the InterpreterExitTrampoline. This change also removes the InterpreterNotifyDeoptXXX builtins and unifies FCG and Igntion to both use NotifyDeoptXXX. As part of this change, FullCodegenerator::State is moved to Deoptimize::BailoutState. BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/1969423002 Cr-Commit-Position: refs/heads/master@{#36288}
-
yangguo authored
R=bmeurer@chromium.org BUG=v8:5010 Review-Url: https://codereview.chromium.org/1980463002 Cr-Commit-Position: refs/heads/master@{#36276}
-
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}
-
- 10 May, 2016 2 commits
-
-
adamk authored
Globals used to be hole-initialized in the case of toplevel legacy const declarations. But now that the only use of legacy const is for sloppy function expression names, we can unconditionally initialize globals to undefined instead of the_hole. Review-Url: https://codereview.chromium.org/1964993002 Cr-Commit-Position: refs/heads/master@{#36151}
-
mstarzinger authored
This implements declaration of lookup slots for variables and functions within optimized code. Such a declaration only appears with top-level eval code, which we only recently started handling in TurboFan. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/1962723002 Cr-Commit-Position: refs/heads/master@{#36125}
-
- 09 May, 2016 2 commits
-
-
mstarzinger authored
This makes the aforementioned visitation function independent of the target architecture by leveraging existing abstractions. R=mvstanton@chromium.org Review-Url: https://codereview.chromium.org/1962663002 Cr-Commit-Position: refs/heads/master@{#36111}
-
mstarzinger authored
The bailout points for named and keyed property loads when doing super property calls are not being prepared by full-codegen, even though we are using them in TurboFan for deopts and stack traces. R=jarin@chromium.org TEST=mjsunit/regress/regress-4971 BUG=v8:4971 LOG=n Review-Url: https://codereview.chromium.org/1960083002 Cr-Commit-Position: refs/heads/master@{#36109}
-
- 03 May, 2016 2 commits
-
-
ishell authored
Code common with ObjectHasOwnProperty builtin was moved to CodeStubAssembler. BUG=v8:2743 LOG=Y Review-Url: https://codereview.chromium.org/1894953004 Cr-Commit-Position: refs/heads/master@{#35972}
-
yangguo authored
R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/1942163002 Cr-Commit-Position: refs/heads/master@{#35960}
-
- 26 Apr, 2016 1 commit
-
-
mlippautz authored
Default (and only way) is now to retrieve a tagged object. BUG=chromium:606711 LOG=N Review URL: https://codereview.chromium.org/1922553002 Cr-Commit-Position: refs/heads/master@{#35792}
-
- 25 Apr, 2016 1 commit
-
-
yangguo authored
R=mstarzinger@chromium.org, rossberg@chromium.org BUG=v8:4690 LOG=N Review URL: https://codereview.chromium.org/1906653004 Cr-Commit-Position: refs/heads/master@{#35750}
-
- 22 Apr, 2016 1 commit
-
-
yangguo authored
R=mstarzinger@chromium.org BUG=v8:4690 LOG=N Review URL: https://codereview.chromium.org/1903223003 Cr-Commit-Position: refs/heads/master@{#35729}
-
- 19 Apr, 2016 1 commit
-
-
adamk authored
Now that all 'const' declarations are of the ES2015 variety, the only use of CONST_LEGACY is for function name bindings in sloppy mode named function expressions. This patch aims to delete all code meant to handle other cases, which mostly had to do with hole initialization/hole checks. Since function name bindings are initialized at entry to a function, it's impossible to ever observe one in an uninitialized state. To simplify the patch further, it removes the `IMPORT` VariableMode, as it's not likely to be needed (IMPORT is identical to CONST for the purpose of VariableMode). Review URL: https://codereview.chromium.org/1895973002 Cr-Commit-Position: refs/heads/master@{#35632}
-
- 18 Apr, 2016 2 commits
-
-
yangguo authored
There were a couple of issues with it: - interpreter is not supported - the source position was just accidentally correct for full-codegen - the eval origin could have been cached Also fixes a few other places to use AbstractCode. R=mstarzinger@chromium.org Committed: https://crrev.com/2f3a171adc9e620c2235bf0562145b9d4eaba66d Cr-Commit-Position: refs/heads/master@{#35257} Committed: https://crrev.com/ad4e8a27963b704bb70ec8bac0991c57296b1d16 Cr-Commit-Position: refs/heads/master@{#35481} Review URL: https://codereview.chromium.org/1854713002 Cr-Commit-Position: refs/heads/master@{#35581}
-
verwaest authored
BUG= Committed: https://crrev.com/4c2b04542f263b2679194f9fb75672ebbe72b924 Cr-Commit-Position: refs/heads/master@{#35330} Committed: https://crrev.com/7fdfdc12d4e4291348112ace4278a827f57f2eb9 Cr-Commit-Position: refs/heads/master@{#35494} Review URL: https://codereview.chromium.org/1838283003 Cr-Commit-Position: refs/heads/master@{#35563}
-
- 15 Apr, 2016 1 commit
-
-
verwaest authored
Revert of Migrate FastCloneShallowObjectStub to TurboFan (patchset #9 id:180001 of https://codereview.chromium.org/1838283003/ ) Reason for revert: The boilerplate is copied based on the boilerplate + memento size, which reads off the end of the boilerplate. Original issue's description: > Migrate FastCloneShallowObjectStub to TurboFan > > BUG= > > Committed: https://crrev.com/4c2b04542f263b2679194f9fb75672ebbe72b924 > Cr-Commit-Position: refs/heads/master@{#35330} > > Committed: https://crrev.com/7fdfdc12d4e4291348112ace4278a827f57f2eb9 > Cr-Commit-Position: refs/heads/master@{#35494} TBR=bmeurer@chromium.org,jkummerow@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1888043006 Cr-Commit-Position: refs/heads/master@{#35544}
-
- 14 Apr, 2016 3 commits
-
-
verwaest authored
BUG= Committed: https://crrev.com/4c2b04542f263b2679194f9fb75672ebbe72b924 Cr-Commit-Position: refs/heads/master@{#35330} Review URL: https://codereview.chromium.org/1838283003 Cr-Commit-Position: refs/heads/master@{#35494}
-
yangguo authored
Revert of Correctly annotate eval origin. (patchset #5 id:80001 of https://codereview.chromium.org/1854713002/ ) Reason for revert: performance impact Original issue's description: > Correctly annotate eval origin. > > There were a couple of issues with it: > - interpreter is not supported > - the source position was just accidentally correct for full-codegen > - the eval origin could have been cached > > Also fixes a few other places to use AbstractCode. > > R=mstarzinger@chromium.org > > Committed: https://crrev.com/2f3a171adc9e620c2235bf0562145b9d4eaba66d > Cr-Commit-Position: refs/heads/master@{#35257} > > Committed: https://crrev.com/ad4e8a27963b704bb70ec8bac0991c57296b1d16 > Cr-Commit-Position: refs/heads/master@{#35481} TBR=mstarzinger@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1888013002 Cr-Commit-Position: refs/heads/master@{#35491}
-
yangguo authored
There were a couple of issues with it: - interpreter is not supported - the source position was just accidentally correct for full-codegen - the eval origin could have been cached Also fixes a few other places to use AbstractCode. R=mstarzinger@chromium.org Committed: https://crrev.com/2f3a171adc9e620c2235bf0562145b9d4eaba66d Cr-Commit-Position: refs/heads/master@{#35257} Review URL: https://codereview.chromium.org/1854713002 Cr-Commit-Position: refs/heads/master@{#35481}
-
- 11 Apr, 2016 1 commit
-
-
neis authored
... instead of doing stack magic. This is a cleanup in preparation for the new generators implementation. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1867263002 Cr-Commit-Position: refs/heads/master@{#35370}
-
- 08 Apr, 2016 1 commit
-
-
hablich authored
Revert of Migrate FastCloneShallowObjectStub to TurboFan (patchset #7 id:140001 of https://codereview.chromium.org/1838283003/ ) Reason for revert: Makes some WebGL tests flaky: https://codereview.chromium.org/1866373002/ Bisection on tryserver shows this as the culprit. Local repro unfortunately does not work. Original issue's description: > Migrate FastCloneShallowObjectStub to TurboFan > > BUG= > > Committed: https://crrev.com/4c2b04542f263b2679194f9fb75672ebbe72b924 > Cr-Commit-Position: refs/heads/master@{#35330} TBR=bmeurer@chromium.org,verwaest@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= Review URL: https://codereview.chromium.org/1875683002 Cr-Commit-Position: refs/heads/master@{#35353}
-
- 07 Apr, 2016 1 commit
-
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1838283003 Cr-Commit-Position: refs/heads/master@{#35330}
-
- 06 Apr, 2016 1 commit
-
-
bmeurer authored
Introduce a ResumeGeneratorTrampoline, which does the actual stack state reconstruction (currently always restores a fullcodegen frame), and introduce appropriate TurboFan builtins for %GeneratorPrototype%.next, %GeneratorPrototype%.return and %GeneratorPrototype%.throw based on this native builtin. Also unify the flooding in case of step-in to always work based on JSFunction and remove the special casing for JSGeneratorObject. R=mstarzinger@chromium.org, neis@chromium.org TBR=rossberg@chromium.org BUG=chromium:513471 LOG=n Review URL: https://codereview.chromium.org/1865833002 Cr-Commit-Position: refs/heads/master@{#35283}
-
- 05 Apr, 2016 2 commits
-
-
machenbach authored
Revert of Correctly annotate eval origin. (patchset #4 id:60001 of https://codereview.chromium.org/1854713002/ ) Reason for revert: [Sheriff] Crashes a layout test: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/5855 Original issue's description: > Correctly annotate eval origin. > > There were a couple of issues with it: > - interpreter is not supported > - the source position was just accidentally correct for full-codegen > - the eval origin could have been cached > > Also fixes a few other places to use AbstractCode. > > R=mstarzinger@chromium.org > > Committed: https://crrev.com/2f3a171adc9e620c2235bf0562145b9d4eaba66d > Cr-Commit-Position: refs/heads/master@{#35257} TBR=mstarzinger@chromium.org,yangguo@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1858773004 Cr-Commit-Position: refs/heads/master@{#35260}
-
yangguo authored
There were a couple of issues with it: - interpreter is not supported - the source position was just accidentally correct for full-codegen - the eval origin could have been cached Also fixes a few other places to use AbstractCode. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1854713002 Cr-Commit-Position: refs/heads/master@{#35257}
-
- 04 Apr, 2016 1 commit
-
-
yangguo authored
R=ishell@chromium.org BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1847373002 Cr-Commit-Position: refs/heads/master@{#35230}
-
- 01 Apr, 2016 1 commit
-
-
bmeurer authored
This adds a new TurboFan-based ToIntegerStub, similar to the ToLengthStub, and uses it whereever we had custom code for %_ToInteger previously. R=yangguo@chromium.org BUG=v8:4587 LOG=n Review URL: https://codereview.chromium.org/1846683006 Cr-Commit-Position: refs/heads/master@{#35190}
-
- 31 Mar, 2016 1 commit
-
-
bmeurer authored
Previously all code stubs (i.e. both platform and Crankshaft code stubs) preserved the context register for full-codegen (neither Ignition, nor TurboFan nor Crankshaft require this or would benefit from this), but the newly introduced TurboFanCodeStubs no longer do this and there's no need to, so we have to make sure in full-codegen that we restore the context register after intrinsic calls, which potentially call TurboFanCodeStubs. Drive-by-fix: VisitThisFunction can be made platform independent. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1848553002 Cr-Commit-Position: refs/heads/master@{#35154}
-
- 22 Mar, 2016 1 commit
-
-
adamk authored
Now that ES2015 const has shipped, in Chrome 49, legacy const declarations are no more. This lets us remove a bunch of code from many parts of the codebase. In this patch, I remove parser support for generating legacy const variables from const declarations. This also removes the special "illegal declaration" bit from Scope, which has ripples into all compiler backends. Also gone are any tests which relied on legacy const declarations. Note that we do still generate a Variable in mode CONST_LEGACY in one case: function name bindings in sloppy mode. The likely fix there is to add a new Variable::Kind for this case and handle it appropriately for stores in each backend, but I leave that for a later patch to make this one completely subtractive. Review URL: https://codereview.chromium.org/1819123002 Cr-Commit-Position: refs/heads/master@{#35002}
-