- 12 Oct, 2016 2 commits
-
-
ishell authored
Review-Url: https://codereview.chromium.org/2412613004 Cr-Commit-Position: refs/heads/master@{#40220}
-
bmeurer authored
This is the next step to unify the Call/Construct feedback collection and prepare it to be able to collect SharedFunctionInfo feedback. This also reduces the CallICStub overhead quite a bit since we only need one stub per mode (and tail call mode), not also one per call arity. R=mvstanton@chromium.org BUG=v8:2206 NOTRY=true Review-Url: https://codereview.chromium.org/2412453005 Cr-Commit-Position: refs/heads/master@{#40206}
-
- 21 Sep, 2016 1 commit
-
-
ishell authored
This cleanup is necessary to make HCallWithDescriptor support passing arguments on the stack. BUG=v8:5407 Review-Url: https://codereview.chromium.org/2352163004 Cr-Commit-Position: refs/heads/master@{#39590}
-
- 16 Sep, 2016 1 commit
-
-
ishell authored
This CL also cleans up related interface descriptors: 1) unused StoreTransitionDescriptor is removed and VectorStoreTransitionDescriptor is renamed to StoreTransitionDescriptor. 2) on ia32/x87 architectures slot and vector are passed on the stack (dispatcher/handlers cleanup will be addressed in a separate CL). These two stub ports have to be combined in one CL because: 1) without changing the StoreTransitionDescriptor TF was not able to compile them on ia32/x87 (because of lack of registers), 2) it was not possible to change the descriptor first because Crankshaft was not able to deal with the stack allocated parameters in case of a stub failure. TBR=jkummerow@chromium.org BUG=v8:5269 Review-Url: https://codereview.chromium.org/2313093002 Cr-Commit-Position: refs/heads/master@{#39476}
-
- 08 Sep, 2016 1 commit
-
-
mythria authored
Adds support to collect allocation site feedback for Array function calls to the call bytecode handler. BUG=v8:4280, v8:4780 LOG=N Review-Url: https://codereview.chromium.org/2307903002 Cr-Commit-Position: refs/heads/master@{#39283}
-
- 02 Sep, 2016 1 commit
-
-
mythria authored
Collect type feedback in the bytecode handler for 'new' bytecode. The earlier cl (https://codereview.chromium.org/2153433002/) was reverted because that implementation did not collect allocation site feedback. This regressed delta blue by an order of magnitude. This implementation includes collection of allocation site feedback. Reland of https://codereview.chromium.org/2190293003/ with a bug fix. BUG=v8:4280, v8:4780 LOG=N Review-Url: https://codereview.chromium.org/2225923003 Cr-Commit-Position: refs/heads/master@{#39120}
-
- 23 Aug, 2016 1 commit
-
-
epertoso authored
Drive-by fix: the order of parameters in the BinaryOpWithFeedback TurboFan code stubs now reflects the convention of having the context at the end. BUG=v8:5273 Review-Url: https://codereview.chromium.org/2263253002 Cr-Commit-Position: refs/heads/master@{#38832}
-
- 05 Aug, 2016 2 commits
-
-
machenbach authored
Revert of [Interpreter] Collect type feedback for 'new' in the bytecode handler (patchset #6 id:100001 of https://codereview.chromium.org/2190293003/ ) Reason for revert: [Sheriff] Fails on nosnap debug: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/8403 Original issue's description: > [Interpreter] Collect type feedback for 'new' in the bytecode handler > > Collect type feedback in the bytecode handler for 'new' bytecode. The > earlier cl (https://codereview.chromium.org/2153433002/) was reverted > because that implementation did not collect allocation site feedback. > This regressed delta blue by an order of magnitude. This implementation > includes collection of allocation site feedback. > > BUG=v8:4280, v8:4780 > LOG=N > > Committed: https://crrev.com/9d5e6129c4c7f9cbfe81a5fad2a470f219fe137c > Cr-Commit-Position: refs/heads/master@{#38364} TBR=bmeurer@chromium.org,rmcilroy@chromium.org,balazs.kilvady@imgtec.com,mythria@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280, v8:4780 Review-Url: https://codereview.chromium.org/2212343002 Cr-Commit-Position: refs/heads/master@{#38368}
-
mythria authored
Collect type feedback in the bytecode handler for 'new' bytecode. The earlier cl (https://codereview.chromium.org/2153433002/) was reverted because that implementation did not collect allocation site feedback. This regressed delta blue by an order of magnitude. This implementation includes collection of allocation site feedback. BUG=v8:4280, v8:4780 LOG=N Review-Url: https://codereview.chromium.org/2190293003 Cr-Commit-Position: refs/heads/master@{#38364}
-
- 01 Aug, 2016 1 commit
-
-
klaasb authored
This will enable the interpreter to add a bytecode and use the stub. BUG=v8:4280 LOG=n Review-Url: https://codereview.chromium.org/2177273002 Cr-Commit-Position: refs/heads/master@{#38219}
-
- 14 Jul, 2016 1 commit
-
-
ishell authored
All stores require a Slot parameter so VectorStoreICTrampolineDescriptor is a new StoreDescriptor. VectorStoreICDescriptor renamed to StoreWithVectorDescriptor. Review-Url: https://codereview.chromium.org/2147043002 Cr-Commit-Position: refs/heads/master@{#37779}
-
- 06 Jul, 2016 1 commit
-
-
danno authored
BUG=608675 Review-Url: https://codereview.chromium.org/2113673002 Cr-Commit-Position: refs/heads/master@{#37550}
-
- 15 Jun, 2016 1 commit
-
-
ishell authored
The new approach is that instead of compiling custom handlers for every global object's PropertyCell it uses single dispatcher that caches PropertyCells in respective slot of the feedback vector. Currently the new LoadGlobalIC machinery is disabled. This CL also removes unused LoadGlobalViaContext* stuff. BUG=chromium:576312 LOG=Y Review-Url: https://codereview.chromium.org/2065113002 Cr-Commit-Position: refs/heads/master@{#37002}
-
- 10 Jun, 2016 1 commit
-
-
danno authored
Instead, always tail call to the runtime. Also, cleanup the various versions of the runtime call that is used for Array construction fallback. There can be only one. BUG=chromium:608675 LOG=N Review-Url: https://codereview.chromium.org/2024253002 Cr-Commit-Position: refs/heads/master@{#36888}
-
- 08 Jun, 2016 1 commit
-
-
verwaest authored
This speeds up .bind by >10x as measured by function f(a,b,c) {} for (var i = 0; i < 10000000; i++) { f.bind(1); // or more arguments. } (Uses hydrogen-stubs rather than TF due to var-args + possible runtime fallback, which is still unsupported in TF.) BUG= Review-Url: https://codereview.chromium.org/2044113002 Cr-Commit-Position: refs/heads/master@{#36817}
-
- 02 Jun, 2016 1 commit
-
-
ishell authored
This CL introduces a DECLARE_DEFAULT_DESCRIPTOR macro that helps defining a CallInterfaceDescriptor in a cases where it is not important which registers to use for passing arguments. One can use such descriptors for new TurboFan stubs. HasPropertyDescriptor now uses the new machinery. Review-Url: https://codereview.chromium.org/2002143002 Cr-Commit-Position: refs/heads/master@{#36675}
-
- 24 May, 2016 1 commit
-
-
danno authored
BUG=chromium:608675 LOG=n Review-Url: https://codereview.chromium.org/1987183002 Cr-Commit-Position: refs/heads/master@{#36463}
-
- 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}
-
- 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}
-
danno authored
Review-Url: https://codereview.chromium.org/1903723003 Cr-Commit-Position: refs/heads/master@{#35963}
-
- 30 Apr, 2016 1 commit
-
-
bmeurer authored
Further refactor the pipeline to even run the first scheduler (part of the effect control linearization) concurrently. This temporarily disables most of the write barrier elimination, but we will get back to that later. Drive-by-fix: Remove the dead code from ChangeLowering, and stack allocate the Typer in the pipeline. Also migrate the AllocateStub to a native code builtin, so that we have the code object + a handle to it available all the time. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel R=mstarzinger@chromium.org BUG=v8:4969 LOG=n Review-Url: https://codereview.chromium.org/1926023002 Cr-Commit-Position: refs/heads/master@{#35918}
-
- 22 Apr, 2016 1 commit
-
-
rmcilroy authored
Adds IncStub and DecStub TurboFan code stubs and hooks them up to the interpreter's Inc and Dec bytecodes (which are used for count operations, e.g. i++). BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1901083002 Cr-Commit-Position: refs/heads/master@{#35720}
-
- 20 Apr, 2016 2 commits
-
-
hablich authored
Reland of Change calling convention of CallApiGetterStub to accept the AccessorInfo (patchset #1 id:1 of https://codereview.chromium.org/1906453002/ ) Reason for revert: Needs other reverts too. Original issue's description: > Revert of Change calling convention of CallApiGetterStub to accept the AccessorInfo (patchset #8 id:140001 of https://codereview.chromium.org/1892533004/ ) > > Reason for revert: > Blocks roll: https://codereview.chromium.org/1896103002/ > > Can also be seen on internal waterfall: https://chromegw.corp.google.com/i/internal.client.v8/builders/v8_cros_perf_1/builds/7558 > > Original issue's description: > > Change calling convention of CallApiGetterStub to accept the AccessorInfo > > > > MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com> > > > > Committed: https://crrev.com/d2b0a4b727f77f97960c7fa71da3431591dc959f > > Cr-Commit-Position: refs/heads/master@{#35606} > > TBR=rodolph.perfetta@arm.com,jkummerow@chromium.org,jacob.bramley@arm.com,verwaest@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true TBR=rodolph.perfetta@arm.com,jkummerow@chromium.org,jacob.bramley@arm.com,verwaest@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/1903093003 Cr-Commit-Position: refs/heads/master@{#35645}
-
hablich authored
Revert of Change calling convention of CallApiGetterStub to accept the AccessorInfo (patchset #8 id:140001 of https://codereview.chromium.org/1892533004/ ) Reason for revert: Blocks roll: https://codereview.chromium.org/1896103002/ Can also be seen on internal waterfall: https://chromegw.corp.google.com/i/internal.client.v8/builders/v8_cros_perf_1/builds/7558 Original issue's description: > Change calling convention of CallApiGetterStub to accept the AccessorInfo > > MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com> > > Committed: https://crrev.com/d2b0a4b727f77f97960c7fa71da3431591dc959f > Cr-Commit-Position: refs/heads/master@{#35606} TBR=rodolph.perfetta@arm.com,jkummerow@chromium.org,jacob.bramley@arm.com,verwaest@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/1906453002 Cr-Commit-Position: refs/heads/master@{#35644}
-
- 19 Apr, 2016 2 commits
-
-
rmcilroy authored
Removes the register file machine register from the interpreter and replaces it will loads from the parent frame pointer. As part of this change the raw operand values for register values changes to enable the interpreter to keep using the operand value as the offset from the parent frame pointer. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1894063002 Cr-Commit-Position: refs/heads/master@{#35618}
-
verwaest authored
MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com> Review URL: https://codereview.chromium.org/1892533004 Cr-Commit-Position: refs/heads/master@{#35606}
-
- 18 Apr, 2016 1 commit
-
-
binji authored
Reland of (https://codereview.chromium.org/1891033002) This is a much cleaner solution, which won't require nearly as much architecture-specific code. Thanks bmeurer@! BUG=v8:4614 LOG=y TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1902433003 Cr-Commit-Position: refs/heads/master@{#35596}
-
- 16 Apr, 2016 2 commits
-
-
machenbach authored
Revert of [Atomics] Remove Atomics code stubs; use TF ops (patchset #6 id:100001 of https://codereview.chromium.org/1891033002/ ) Reason for revert: [Sheriff] Breaks https://build.chromium.org/p/client.v8/builders/V8%20Linux%20ASAN%20mipsel%20-%20debug%20builder/builds/6121 Original issue's description: > [Atomics] Remove Atomics code stubs; use TF ops > > This is a much cleaner solution, which won't require nearly as much > architecture-specific code. Thanks bmeurer@! > > BUG=v8:4614 > LOG=y > R=bmeurer@chromium.org,jarin@chromium.org > > Committed: https://crrev.com/6ff5881b1def45b35384572f61327e42563a89c3 > Cr-Commit-Position: refs/heads/master@{#35547} TBR=bmeurer@chromium.org,jarin@chromium.org,rodolph.perfetta@gmail.com,binji@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4614 Review URL: https://codereview.chromium.org/1895643002 Cr-Commit-Position: refs/heads/master@{#35548}
-
binji authored
This is a much cleaner solution, which won't require nearly as much architecture-specific code. Thanks bmeurer@! BUG=v8:4614 LOG=y R=bmeurer@chromium.org,jarin@chromium.org Review URL: https://codereview.chromium.org/1891033002 Cr-Commit-Position: refs/heads/master@{#35547}
-
- 13 Apr, 2016 2 commits
-
-
binji authored
Reland of (https://codereview.chromium.org/1617503003) * New atomic code stubs for x64, ia32, arm, arm64 * Add convenience functions JumpIfNotValidSmiValue, JumpIfUintNotValidSmiValue to macro-assembler-ia32 (API based on x64 macro assembler) * Remove runtime implementation of Atomics.load, the code stub should always be called instead * Add new test to mjsunit atomics test; check that Smi values of different sizes are supported when possible, else fall back to HeapNumbers These changes were needed to add another codestub: * Bump kStubMajorKeyBits from 7 to 8 * Reduce ScriptContextFieldStub::kSlotIndexBits from 13 to 12 BUG=v8:4614 LOG=y TBR=jarin@chromium.org,bmeurer@chromium.org,rodolph.perfetta@gmail.com,machenbach@chromium.org Review URL: https://codereview.chromium.org/1617503003 Cr-Commit-Position: refs/heads/master@{#35427} Review URL: https://codereview.chromium.org/1881383003 Cr-Commit-Position: refs/heads/master@{#35453}
-
machenbach authored
Revert of [Atomics] code stubs for atomic operations (patchset #28 id:530001 of https://codereview.chromium.org/1617503003/ ) Reason for revert: [Sheriff] Roll was reverted. Please fix unused methods, see: https://codereview.chromium.org/1884913002/ https://build.chromium.org/p/tryserver.chromium.win/builders/win_clang/builds/5585/steps/compile%20%28with%20patch%29/logs/stdio Original issue's description: > [Atomics] code stubs for atomic operations > > * New atomic code stubs for x64, ia32, arm, arm64 > * Add convenience functions JumpIfNotValidSmiValue, JumpIfUintNotValidSmiValue > to macro-assembler-ia32 (API based on x64 macro assembler) > * Remove runtime implementation of Atomics.load, the code stub should always be > called instead > * Add new test to mjsunit atomics test; check that Smi values of different > sizes are supported when possible, else fall back to HeapNumbers > > These changes were needed to add another codestub: > * Bump kStubMajorKeyBits from 7 to 8 > * Reduce ScriptContextFieldStub::kSlotIndexBits from 13 to 12 > > BUG=v8:4614 > LOG=y > > Committed: https://crrev.com/10b5febe11b318cfef130abae343183ac862e60d > Cr-Commit-Position: refs/heads/master@{#35427} TBR=jarin@chromium.org,bmeurer@chromium.org,rodolph.perfetta@gmail.com,binji@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4614 Review URL: https://codereview.chromium.org/1884883003 Cr-Commit-Position: refs/heads/master@{#35443}
-
- 12 Apr, 2016 2 commits
-
-
binji authored
* New atomic code stubs for x64, ia32, arm, arm64 * Add convenience functions JumpIfNotValidSmiValue, JumpIfUintNotValidSmiValue to macro-assembler-ia32 (API based on x64 macro assembler) * Remove runtime implementation of Atomics.load, the code stub should always be called instead * Add new test to mjsunit atomics test; check that Smi values of different sizes are supported when possible, else fall back to HeapNumbers These changes were needed to add another codestub: * Bump kStubMajorKeyBits from 7 to 8 * Reduce ScriptContextFieldStub::kSlotIndexBits from 13 to 12 BUG=v8:4614 LOG=y Review URL: https://codereview.chromium.org/1617503003 Cr-Commit-Position: refs/heads/master@{#35427}
-
bmeurer authored
Previously TurboFan always went to the runtime to allocate in old space, which is pretty slow compare to a stub call. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1877323002 Cr-Commit-Position: refs/heads/master@{#35418}
-
- 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}
-
- 22 Mar, 2016 1 commit
-
-
verwaest authored
This roughly doubles performance for generic Array.prototype.push. BUG= Review URL: https://codereview.chromium.org/1816553002 Cr-Commit-Position: refs/heads/master@{#34987}
-
- 21 Mar, 2016 2 commits
-
-
bbudge authored
LOG=N BUG=v8:4124 Review URL: https://codereview.chromium.org/1706053002 Cr-Commit-Position: refs/heads/master@{#34951}
-
bmeurer authored
Up until now all type conversions (i.e. ToNumber, ToString and friends) had their own specific call interface descriptors, where some of them had to match (i.e. ToString and NumberToString have to use the same argument register). Instead of all the different descriptors, it's sufficient to have a single TypeConversionDescriptor instead. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1823523002 Cr-Commit-Position: refs/heads/master@{#34916}
-
- 09 Mar, 2016 3 commits
-
-
vogelheim authored
- Eliminate stubs with a variable number of arguments. (That only worked due to their very limited use. These stubs' interface descriptors were basically lying about their number of args, which will fail when used generically.) - Fix all CallApi*Stubs' interface descriptors to no longer lie about their arguments. - Unify CallApi*Stub, for * in Function, Accessor, FunctionWithFixedArgs. (Since these are now all doing the same thing.) - Rename the unified stub (and interface descriptors) to *ApiCallback*, since that's really what they're doing. - Refuse inlining an API callback if its number of parameters exceeds the supported number of args. BUG= Committed: https://crrev.com/d238b953a474272c0e3ea22ef6a9b63fa9729340 Cr-Commit-Position: refs/heads/master@{#34614} Review URL: https://codereview.chromium.org/1748123003 Cr-Commit-Position: refs/heads/master@{#34627}
-
vogelheim authored
Revert of Rework CallApi*Stubs. (patchset #5 id:100001 of https://codereview.chromium.org/1748123003/ ) Reason for revert: Breaks Chromium. Original issue's description: > Rework CallApi*Stubs. > > - Eliminate stubs with a variable number of arguments. > (That only worked due to their very limited use. These > stubs' interface descriptors were basically lying > about their number of args, which will fail when used > generically.) > - Fix all CallApi*Stubs' interface descriptors to no > longer lie about their arguments. > - Unify CallApi*Stub, for * in Function, Accessor, > FunctionWithFixedArgs. > (Since these are now all doing the same thing.) > - Rename the unified stub (and interface descriptors) to > *ApiCallback*, since that's really what they're doing. > - Refuse inlining an API callback if its number of > parameters exceeds the supported number of args. > > BUG= > > Committed: https://crrev.com/d238b953a474272c0e3ea22ef6a9b63fa9729340 > Cr-Commit-Position: refs/heads/master@{#34614} TBR=danno@chromium.org,jkummerow@chromium.org,mstarzinger@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/1775933005 Cr-Commit-Position: refs/heads/master@{#34624}
-
vogelheim authored
- Eliminate stubs with a variable number of arguments. (That only worked due to their very limited use. These stubs' interface descriptors were basically lying about their number of args, which will fail when used generically.) - Fix all CallApi*Stubs' interface descriptors to no longer lie about their arguments. - Unify CallApi*Stub, for * in Function, Accessor, FunctionWithFixedArgs. (Since these are now all doing the same thing.) - Rename the unified stub (and interface descriptors) to *ApiCallback*, since that's really what they're doing. - Refuse inlining an API callback if its number of parameters exceeds the supported number of args. BUG= Review URL: https://codereview.chromium.org/1748123003 Cr-Commit-Position: refs/heads/master@{#34614}
-