- 17 Oct, 2016 2 commits
-
-
ishell authored
BUG= Review-Url: https://codereview.chromium.org/2428473002 Cr-Commit-Position: refs/heads/master@{#40358}
-
jkummerow authored
RIP, handwritten KeyedLoadICStub, handwritten KeyedLoadIC_Megamorphic, and hydrogenized KeyedLoadGeneric! Review-Url: https://codereview.chromium.org/2424433002 Cr-Commit-Position: refs/heads/master@{#40354}
-
- 06 Oct, 2016 1 commit
-
-
adamk authored
Introduce AccessCompilerData which hangs off the Isolate, and initialize it when the first PropertyAccessCompiler is instantiated. This avoids TSAN failures when trying to access load/store calling convention arrays. BUG=v8:5427 Review-Url: https://codereview.chromium.org/2389313002 Cr-Commit-Position: refs/heads/master@{#40055}
-
- 05 Oct, 2016 1 commit
-
-
ishell authored
... by passing a field offset as a runtime parameter. This CL also introduces a StoreMapStub - a special case of a store transition that used to be handled by old StoreTransitionStub. BUG=chromium:648545 Review-Url: https://codereview.chromium.org/2397573004 Cr-Commit-Position: refs/heads/master@{#39997}
-
- 28 Sep, 2016 1 commit
-
-
ishell authored
BUG=chromium:650973 Review-Url: https://codereview.chromium.org/2374003002 Cr-Commit-Position: refs/heads/master@{#39823}
-
- 23 Sep, 2016 1 commit
-
-
ishell authored
According to new store IC calling convention the value, slot and vector are passed on the stack and there's no need in trying to preserve values or respective registers in store handlers. Nice bonus: we also don't need virtual registers anymore. BUG=v8:5407 Review-Url: https://codereview.chromium.org/2357323003 Cr-Commit-Position: refs/heads/master@{#39672}
-
- 20 Sep, 2016 1 commit
-
-
ishell authored
This will allow to simplify the miss part of store IC handlers when we decide to pass value/slot/vector on the stack. BUG=v8:5407 Review-Url: https://codereview.chromium.org/2351643005 Cr-Commit-Position: refs/heads/master@{#39549}
-
- 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}
-
- 15 Sep, 2016 1 commit
-
-
ishell authored
Review-Url: https://codereview.chromium.org/2343813002 Cr-Commit-Position: refs/heads/master@{#39445}
-
- 21 Jul, 2016 1 commit
-
-
ishell authored
BUG=chromium:618701 Review-Url: https://codereview.chromium.org/2167493003 Cr-Commit-Position: refs/heads/master@{#37946}
-
- 20 Jul, 2016 1 commit
-
-
ishell authored
This CL fixes weird performance implications when changing layout of Code::flags field: it happened that the unused ICStateField with MONOMORPHIC value in the handlers' flags was accidentally offsetting the underflow bug in stub cache probing code on arm, arm64, mips and mips64. Stub cache tests now work even when snapshot is enabled. Drive-by-change: Fixed counters manipulation on arm64 and mips64. BUG=chromium:618701 Review-Url: https://codereview.chromium.org/2161153002 Cr-Commit-Position: refs/heads/master@{#37910}
-
- 15 Jul, 2016 1 commit
-
-
ishell authored
Revert of [ic] [stubs] Don't use Code::flags in megamorphic stub cache hash computations. (patchset #2 id:20001 of https://codereview.chromium.org/2147433002/ ) Reason for revert: Unfortunately, the performance issues are still there on Android. Original issue's description: > [ic] [stubs] Don't use Code::flags in megamorphic stub cache hash computations. > > This should avoid weird performance issues when changing layout of Code::flags field. > > BUG=chromium:618701 > > Committed: https://crrev.com/aa4140b1ccc114b82700471513c715f68b7c5dac > Cr-Commit-Position: refs/heads/master@{#37755} TBR=jkummerow@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:618701 Review-Url: https://codereview.chromium.org/2147213004 Cr-Commit-Position: refs/heads/master@{#37801}
-
- 14 Jul, 2016 2 commits
-
-
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}
-
ishell authored
This should avoid weird performance issues when changing layout of Code::flags field. BUG=chromium:618701 Review-Url: https://codereview.chromium.org/2147433002 Cr-Commit-Position: refs/heads/master@{#37755}
-
- 13 Jul, 2016 2 commits
-
-
ishell authored
This CL also combines Runtime::GetGlobalInsideTypeof and Runtime::kGetGlobalNotInsideTypeof to Runtime::GetGlobal with explicit typeof_mode parameter. Drive-by-fix: tail call to correct Slow builtin from LoadCallback handlers when --runtime-call-stats is on. BUG=chromium:576312 Review-Url: https://codereview.chromium.org/2144643004 Cr-Commit-Position: refs/heads/master@{#37710}
-
ishell authored
After this CL we can avoid using Code::flags in hash computations for megamorphic stub caches and therefore the unused ICState field can be finally removed from flags. BUG=chromium:618701 Review-Url: https://codereview.chromium.org/2123983004 Cr-Commit-Position: refs/heads/master@{#37708}
-
- 07 Jul, 2016 1 commit
-
-
ishell authored
Now LookupIterator follows the same pattern of prepare transition, apply transition and write value when adding new properties to dictionary objects. JSGlobalObject case: * Prepare transition phase ensures that there is a "transition" property cell prepared for receiving a value. * Apply transition phase does nothing. * Prepare for data property phase ensures that the existing property cell can receive the value. * Write value phase writes value directly to the current property cell. JSObject case: * Prepare transition phase prepares the object for receiving a data value (which could switch an object to dictionary mode). * Apply transition phase migrates object to a transition map. If the map happened to be a dictionary mode object's map then an uninitialized entry added to the properties dictionary. * Prepare for data property phase does nothing. * Write value phase just puts value to the properties dictionary. BUG=chromium:576312 Review-Url: https://codereview.chromium.org/2127583002 Cr-Commit-Position: refs/heads/master@{#37585}
-
- 14 Jun, 2016 1 commit
-
-
jkummerow authored
Review-Url: https://codereview.chromium.org/2064673002 Cr-Commit-Position: refs/heads/master@{#36958}
-
- 13 Jun, 2016 1 commit
-
-
jkummerow authored
When running with FLAG_runtime_call_stats, native accessor accesses must go through the runtime for accurate accounting. Previously the slow_stub() was used as a handler in order to accomplish this, but it could never be looked up from the code cache successfully due to mismatched code flags, which could cause more handler recompilations than in normal operation. This patch fixes that by emitting a runtime call into the compiled handler instead of using the slow_stub(). Drive-by cleanup: drop the unused StoreIC_Megamorphic builtin. Review-Url: https://codereview.chromium.org/2054133002 Cr-Commit-Position: refs/heads/master@{#36926}
-
- 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}
-
- 24 May, 2016 1 commit
-
-
machenbach authored
For cross-compiler-compatibility and standards compliance %p requires a void*, rather than any pointer type. BUG=chromium:474921 Review-Url: https://codereview.chromium.org/2001073002 Cr-Commit-Position: refs/heads/master@{#36466}
-
- 23 May, 2016 1 commit
-
-
jkummerow authored
This flag has been on by default for a while, along with FLAG_track_prototype_users which provides the prerequisite infrastructure. We are now sure that this is the direction we want to go in, so in order to simplify the code, this CL drops the respective flag-off code paths. Review-Url: https://codereview.chromium.org/1993913002 Cr-Commit-Position: refs/heads/master@{#36445}
-
- 22 Apr, 2016 1 commit
-
-
adamk authored
The feature was deprecated in M49 and flagged off in M50. This patch removes it entirely from the codebase. Review URL: https://codereview.chromium.org/1909433003 Cr-Commit-Position: refs/heads/master@{#35714}
-
- 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 1 commit
-
-
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}
-
- 14 Apr, 2016 1 commit
-
-
verwaest authored
Otherwise the megamorphic stubcache will miss. It only probes for non-keyed handlers. BUG= Review URL: https://codereview.chromium.org/1883533003 Cr-Commit-Position: refs/heads/master@{#35492}
-
- 11 Apr, 2016 1 commit
-
-
verwaest authored
BUG= Committed: https://crrev.com/8764f87a3399ba433a4ce6f32161181c713af95c Cr-Commit-Position: refs/heads/master@{#35376} Review URL: https://codereview.chromium.org/1864703003 Cr-Commit-Position: refs/heads/master@{#35386}
-
- 06 Apr, 2016 1 commit
-
-
verwaest authored
The previous code cache system required stubs to be marked with a StubType, causing them to be inserted either into a fixed array or into a dictionary-mode code cache. This could cause names to be in both cases, and lookup would just find the "fast" one first. Given that we clear out the caches on each GC, the memory overhead shouldn't be too bad. Additionally, the dictionary itself should just stay linear for small arrays; that's faster anyway. This CL additionally deletes some dead IC code. BUG= Review URL: https://codereview.chromium.org/1846963002 Cr-Commit-Position: refs/heads/master@{#35291}
-
- 01 Apr, 2016 1 commit
-
-
bmeurer authored
The HandlerCompiler did not properly handle the weird edge case when a sloppy mode function was installed as an accessor on one of the value wrapper prototypes and then accessed via a load from a primitive value. In this case we just passed the primitive value untouched instead of properly wrapping it first. The CallFunction builtin properly deals with all the funny edge cases, so we use it instead of duplicating almost all of the logic here (the performance difference is neglible). R=verwaest@chromium.org BUG=chromium:599073, v8:4413 LOG=n Review URL: https://codereview.chromium.org/1845243005 Cr-Commit-Position: refs/heads/master@{#35187}
-
- 21 Mar, 2016 1 commit
-
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1817913003 Cr-Commit-Position: refs/heads/master@{#34927}
-
- 10 Mar, 2016 1 commit
-
-
verwaest authored
NOPRESUBMIT=true BUG= Review URL: https://codereview.chromium.org/1776353002 Cr-Commit-Position: refs/heads/master@{#34664}
-
- 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}
-
- 08 Mar, 2016 1 commit
-
-
danno authored
Before this CL, various code stubs used different techniques for marking their frames to enable stack-crawling and other access to data in the frame. All of them were based on a abuse of the "standard" frame representation, e.g. storing the a context pointer immediately below the frame's fp, and a function pointer after that. Although functional, this approach tends to make stubs and builtins do an awkward, unnecessary dance to appear like standard frames, even if they have nothing to do with JavaScript execution. This CL attempts to improve this by: * Ensuring that there are only two fundamentally different types of frames, a "standard" frame and a "typed" frame. Standard frames, as before, contain both a context and function pointer. Typed frames contain only a minimum of a smi marker in the position immediately below the fp where the context is in standard frames. * Only interpreted, full codegen, and optimized Crankshaft and TurboFan JavaScript frames use the "standard" format. All other frames use the type frame format with an explicit marker. * Typed frames can contain one or more values below the type marker. There is new magic macro machinery in frames.h that simplifies defining the offsets of these fields in typed frames. * A new flag in the CallDescriptor enables specifying whether a frame is a standard frame or a typed frame. Secondary register location spilling is now only enabled for standard frames. * A zillion places in the code have been updated to deal with the fact that most code stubs and internal frames use the typed frame format. This includes changes in the deoptimizer, debugger, and liveedit. * StandardFrameConstants::kMarkerOffset is deprecated, (CommonFrameConstants::kContextOrFrameTypeOffset and StandardFrameConstants::kFrameOffset are now used in its stead). LOG=N Review URL: https://codereview.chromium.org/1696043002 Cr-Commit-Position: refs/heads/master@{#34571}
-
- 17 Feb, 2016 1 commit
-
-
mstarzinger authored
R=rossberg@chromium.org,bmeurer@chromium.org,verwaest@chromium.org BUG=v8:3956 LOG=n Review URL: https://codereview.chromium.org/1700993002 Cr-Commit-Position: refs/heads/master@{#34067}
-
- 16 Feb, 2016 1 commit
-
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1696333002 Cr-Commit-Position: refs/heads/master@{#34035}
-
- 09 Feb, 2016 1 commit
-
-
epertoso authored
BUG= Committed: https://crrev.com/4d46b510caf534d770ce19a01a11b8796304471b Cr-Commit-Position: refs/heads/master@{#33812} Review URL: https://codereview.chromium.org/1609233002 Cr-Commit-Position: refs/heads/master@{#33851}
-
- 08 Feb, 2016 1 commit
-
-
machenbach authored
Revert of Do not eagerly instantiate accessors' JSFunction. (patchset #9 id:180001 of https://codereview.chromium.org/1609233002/ ) Reason for revert: [Sheriff] Breaks gcmole: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gcmole/builds/6260 Original issue's description: > Do not eagerly instantiate accessors' JSFunction. > > BUG= > > Committed: https://crrev.com/4d46b510caf534d770ce19a01a11b8796304471b > Cr-Commit-Position: refs/heads/master@{#33812} TBR=verwaest@chromium.org,epertoso@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/1679683004 Cr-Commit-Position: refs/heads/master@{#33814}
-