- 09 Nov, 2015 1 commit
-
-
bmeurer authored
Introduce receiver conversion mode specialization for the Call and CallFunction builtins, so we can specialize the builtin functionality (actually an optimization only) based on static information from the callsite (this is basically a superset of the optimizations that were available with the CallFunctionStub and CallICStub, except that these optimizations are correct now). This fixes a regression introduced by the removal of CallFunctionStub, for programs that call a lot. R=yangguo@chromium.org BUG=chromium:552244 LOG=n Review URL: https://codereview.chromium.org/1436493002 Cr-Commit-Position: refs/heads/master@{#31871}
-
- 06 Nov, 2015 1 commit
-
-
rmcilroy authored
IC::GetSharedFunctionInfo get's the JS frame which called the IC. When the function is running in the interpreter, there is a Bytecode handler stub frame between the IC and the JS frame. Modify IC::GetSharedFunctionInfo to handle this. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1420283020 Cr-Commit-Position: refs/heads/master@{#31865}
-
- 05 Nov, 2015 1 commit
-
-
verwaest authored
This fixes receiver conversion since the Call builtin does it correctly. BUG=v8:4526 LOG=n Review URL: https://codereview.chromium.org/1407373007 Cr-Commit-Position: refs/heads/master@{#31823}
-
- 04 Nov, 2015 2 commits
-
-
mstarzinger authored
This removes several methods from JSFunction that just delegate to SharedFunctionInfo. These methods are especially dangerous when they hide the fact that they potentially affect all function instances deriving from the same underlying SharedFunctionInfo. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1417213005 Cr-Commit-Position: refs/heads/master@{#31792}
-
ishell authored
Review URL: https://codereview.chromium.org/1412223018 Cr-Commit-Position: refs/heads/master@{#31785}
-
- 03 Nov, 2015 2 commits
-
-
balazs.kilvady authored
BUG= Review URL: https://codereview.chromium.org/1396133002 Cr-Commit-Position: refs/heads/master@{#31761}
-
jkummerow authored
This CL fixes an invalid cast in Slow_ArrayConcat (a Proxy on a DICTIONARY_ELEMENTS array's prototype chain). It also adds some comments and minor drive-by refactorings to other PrototypeIterator use sites. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1402393003 Cr-Commit-Position: refs/heads/master@{#31738}
-
- 02 Nov, 2015 2 commits
-
-
yangguo authored
R=jkummerow@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1406113007 Cr-Commit-Position: refs/heads/master@{#31714}
-
yangguo authored
R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1424703005 Cr-Commit-Position: refs/heads/master@{#31711}
-
- 30 Oct, 2015 1 commit
-
-
neis authored
This is in preparation of implementing Reflect.set. Besides making SetSuperProperty and others return Maybe<bool>, this CL also fixes some parts of my previous refactoring of SetProperty and others: It doesn't make sense to take both a language_mode and a should_throw argument. A strict language_mode should imply THROW_ON_ERROR. R=rossberg, verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/1431443003 Cr-Commit-Position: refs/heads/master@{#31678}
-
- 29 Oct, 2015 1 commit
-
-
mvstanton authored
We have plans to create more ICs, and we are out of bits to represent the Kind in the flags field of the code object. The InlineCacheState can lose a bit because it no longer needs the DEFAULT state. That state existed as a way to detect errors where code incorrectly looked at a vector IC stub's InlineCacheState instead of correctly determining said state from a glance at the vector. This really isn't a danger anymore. So, with the horse trading, we could now represent up to 32 code kinds. BUG= Review URL: https://codereview.chromium.org/1427803003 Cr-Commit-Position: refs/heads/master@{#31666}
-
- 27 Oct, 2015 1 commit
-
-
bmeurer authored
Change CompareNilIC to return true/false instead of 1/0, and use the CompareNilICStub in TurboFan for abstract equality with null/undefined. This way we don't always run into the %Equals runtime fallback when comparing objects with null/undefined. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1417503008 Cr-Commit-Position: refs/heads/master@{#31596}
-
- 26 Oct, 2015 1 commit
-
-
bmeurer authored
Drive-by-fix: Move IC::GetRootConstructor to Map::GetConstructorFunction, so we can use that in the ICs, Crankshaft and Turbofan. R=jarin@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1416493007 Cr-Commit-Position: refs/heads/master@{#31577}
-
- 23 Oct, 2015 1 commit
-
-
zhengxing.li authored
port 2d4aeaad (r31204). original commit message: The stack manipulation was expensive. Two virtual registers are better. BUG= Review URL: https://codereview.chromium.org/1410573003 Cr-Commit-Position: refs/heads/master@{#31504}
-
- 19 Oct, 2015 1 commit
-
-
verwaest authored
[IC] Ensure we don't transition receivers when there's a data property in the hidden prototype chain. BUG=chromium:542647 R=cbruni@chromium.org LOG=n Review URL: https://codereview.chromium.org/1406873002 Cr-Commit-Position: refs/heads/master@{#31357}
-
- 12 Oct, 2015 2 commits
-
-
mbrandy authored
Port 2d4aeaad Original commit message: The stack manipulation was expensive. Two virtual registers are better. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1390343004 Cr-Commit-Position: refs/heads/master@{#31213}
-
mvstanton authored
The stack manipulation was expensive. Two virtual registers are better. BUG= Review URL: https://codereview.chromium.org/1376933006 Cr-Commit-Position: refs/heads/master@{#31204}
-
- 01 Oct, 2015 1 commit
-
-
ishell authored
This CL also allows to use arbitrary number of feedback vector elements for particular slot kind. Review URL: https://codereview.chromium.org/1370303004 Cr-Commit-Position: refs/heads/master@{#31050}
-
- 30 Sep, 2015 1 commit
-
-
mstarzinger authored
This enables linter checking for "readability/namespace" violations during presubmit and instead marks the few known exceptions that we allow explicitly. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1371083003 Cr-Commit-Position: refs/heads/master@{#31019}
-
- 29 Sep, 2015 1 commit
-
-
dusan.m.milosavljevic authored
TEST= BUG= Review URL: https://codereview.chromium.org/1334793004 Cr-Commit-Position: refs/heads/master@{#31011}
-
- 28 Sep, 2015 2 commits
-
-
alph authored
Drive-by: remove unnecessary includes. Review URL: https://codereview.chromium.org/1356223004 Cr-Commit-Position: refs/heads/master@{#30987}
-
ishell authored
This is a first step towards merging FeedbackVectorSlot and FeedbackVectorICSlot. Review URL: https://codereview.chromium.org/1369973002 Cr-Commit-Position: refs/heads/master@{#30964}
-
- 24 Sep, 2015 3 commits
-
-
bmeurer authored
There was already a bit on the Map named "function with prototype", which basically meant that the Map was a map for a JSFunction that could be used as a constructor. Now this CL generalizes that bit to IsConstructor, which says that whatever (Heap)Object you are looking at can be used as a constructor (i.e. the bit is also set for bound functions that can be used as constructors and proxies that have a [[Construct]] internal method). This way we have a single chokepoint for IsConstructor checking, which allows us to get rid of the various ways in which we tried to guess whether something could be used as a constructor or not. Drive-by-fix: Renamed IsConstructor on FunctionKind to IsClassConstructor to resolve the weird name clash, and the IsClassConstructor name also matches the spec. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg R=jarin@chromium.org, rossberg@chromium.org BUG=v8:4413, v8:4430 LOG=n Committed: https://crrev.com/8de4d9351df4cf66c8a128d561a6e331d196be54 Cr-Commit-Position: refs/heads/master@{#30900} Review URL: https://codereview.chromium.org/1358423002 Cr-Commit-Position: refs/heads/master@{#30902}
-
bmeurer authored
Revert of [es6] Introduce spec compliant IsConstructor. (patchset #2 id:20001 of https://codereview.chromium.org/1358423002/ ) Reason for revert: Failed on Fuzzer and MIPS bot. Original issue's description: > [es6] Introduce spec compliant IsConstructor. > > There was already a bit on the Map named "function with prototype", > which basically meant that the Map was a map for a JSFunction that could > be used as a constructor. Now this CL generalizes that bit to > IsConstructor, which says that whatever (Heap)Object you are looking at > can be used as a constructor (i.e. the bit is also set for bound > functions that can be used as constructors and proxies that have a > [[Construct]] internal method). > > This way we have a single chokepoint for IsConstructor checking, which > allows us to get rid of the various ways in which we tried to guess > whether something could be used as a constructor or not. > > Drive-by-fix: Renamed IsConstructor on FunctionKind to > IsClassConstructor to resolve the weird name clash, and the > IsClassConstructor name also matches the spec. > > R=jarin@chromium.org, rossberg@chromium.org > BUG=v8:4430 > LOG=n > > Committed: https://crrev.com/8de4d9351df4cf66c8a128d561a6e331d196be54 > Cr-Commit-Position: refs/heads/master@{#30900} TBR=jarin@chromium.org,rossberg@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4430 Review URL: https://codereview.chromium.org/1360403002 Cr-Commit-Position: refs/heads/master@{#30901}
-
bmeurer authored
There was already a bit on the Map named "function with prototype", which basically meant that the Map was a map for a JSFunction that could be used as a constructor. Now this CL generalizes that bit to IsConstructor, which says that whatever (Heap)Object you are looking at can be used as a constructor (i.e. the bit is also set for bound functions that can be used as constructors and proxies that have a [[Construct]] internal method). This way we have a single chokepoint for IsConstructor checking, which allows us to get rid of the various ways in which we tried to guess whether something could be used as a constructor or not. Drive-by-fix: Renamed IsConstructor on FunctionKind to IsClassConstructor to resolve the weird name clash, and the IsClassConstructor name also matches the spec. R=jarin@chromium.org, rossberg@chromium.org BUG=v8:4430 LOG=n Review URL: https://codereview.chromium.org/1358423002 Cr-Commit-Position: refs/heads/master@{#30900}
-
- 23 Sep, 2015 1 commit
-
-
jkummerow authored
BUG=chromium:527994 LOG=n Review URL: https://codereview.chromium.org/1358393004 Cr-Commit-Position: refs/heads/master@{#30889}
-
- 22 Sep, 2015 1 commit
-
-
bmeurer authored
Slow path for relational comparison of boolean primitive values now goes through the runtime, which made the slow path even slower than it already was. So in order to repair the regression, we just track boolean feedback for comparisons and use that to generate decent code in Crankshaft (not the best possible code, but good enough for Crankshaft; TurboFan will be able to do better on that). R=jarin@chromium.org BUG=chromium:534200 LOG=n Review URL: https://codereview.chromium.org/1347063004 Cr-Commit-Position: refs/heads/master@{#30860}
-
- 21 Sep, 2015 1 commit
-
-
bmeurer authored
Previously we only collected the known map for equality comparisons. But if we also collect it for relational comparisons, we can inline a fast path of ToPrimitive on the objects, which is especially interesting since both sides have the same map. For now we only inline a very limited subset of ToPrimitive in Crankshaft, which is when the receiver map (and its prototype chain) doesn't have @@toPrimitive, and both valueOf and toString are the default versions on the %ObjectPrototype%. In this case the relational comparison would reduce to a string comparison of "[object CLASS]" with itself and so we can reduce that to a boolean constant plus map checks on both left and right hand side, plus code dependencies on the prototype chain. This repairs the regression on box2d. R=jkummerow@chromium.org BUG=chromium:534200 LOG=n Review URL: https://codereview.chromium.org/1355113002 Cr-Commit-Position: refs/heads/master@{#30852}
-
- 18 Sep, 2015 1 commit
-
-
jkummerow authored
This extends instrumentation added in r30683 and r30768 to cover the possibility that the root cause we're after is in optimized code. This CL is intended to be reverted in a couple of days, but should cause no harm while it's in the tree (we would crash anyway). BUG=chromium:527994 LOG=n Review URL: https://codereview.chromium.org/1348823003 Cr-Commit-Position: refs/heads/master@{#30819}
-
- 17 Sep, 2015 1 commit
-
-
chunyang.dai authored
port 1e00bb57 (r30737). original commit message: (reason for revert/reland: patch incorrectly left --vector-stores flag on, helpfully revealing some gcstress issues to look at, but they don't need to block this CL). Some pretty hacky code was used to carry out the tail-call handler dispatch on ia32 vector stores due to a lack of free registers. It really tanks performance. A better approach is to use a virtual register on the isolate. BUG= Review URL: https://codereview.chromium.org/1344383002 Cr-Commit-Position: refs/heads/master@{#30781}
-
- 16 Sep, 2015 1 commit
-
-
mvstanton authored
This will catch an invalid receiver before being passed to a load ic miss handler in the runtime. BUG= R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1351493002 Cr-Commit-Position: refs/heads/master@{#30768}
-
- 15 Sep, 2015 1 commit
-
-
mvstanton authored
(reason for revert/reland: patch incorrectly left --vector-stores flag on, helpfully revealing some gcstress issues to look at, but they don't need to block this CL). Some pretty hacky code was used to carry out the tail-call handler dispatch on ia32 vector stores due to a lack of free registers. It really tanks performance. A better approach is to use a virtual register on the isolate. BUG= TBR=jkummerow@chromium.org, vogelheim@chromium.org Review URL: https://codereview.chromium.org/1346573002 Cr-Commit-Position: refs/heads/master@{#30737}
-
- 14 Sep, 2015 2 commits
-
-
machenbach authored
Revert of VectorICs: ia32 store ics need a virtual register. (patchset #3 id:40001 of https://codereview.chromium.org/1336313002/ ) Reason for revert: [Sheriff] Breaks GC stress on mac: http://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/2536 Original issue's description: > VectorICs: ia32 store ics need a virtual register. > > Some pretty hacky code was used to carry out the tail-call > handler dispatch on ia32 vector stores due to a lack > of free registers. It really tanks performance. A better > approach is to use a virtual register on the isolate. > > BUG= > > Committed: https://crrev.com/b26e98f19b5e77df50cb4a259f099ee6afa335e3 > Cr-Commit-Position: refs/heads/master@{#30718} TBR=jkummerow@chromium.org,vogelheim@chromium.org,mvstanton@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1340123002 Cr-Commit-Position: refs/heads/master@{#30719}
-
mvstanton authored
Some pretty hacky code was used to carry out the tail-call handler dispatch on ia32 vector stores due to a lack of free registers. It really tanks performance. A better approach is to use a virtual register on the isolate. BUG= Review URL: https://codereview.chromium.org/1336313002 Cr-Commit-Position: refs/heads/master@{#30718}
-
- 10 Sep, 2015 3 commits
-
-
jkummerow authored
LoadICs must always return a JS-accessible value (nothing internal). Dictionary property keys are guaranteed to be unique names. BUG=chromium:527994 LOG=n Review URL: https://codereview.chromium.org/1334673003 Cr-Commit-Position: refs/heads/master@{#30683}
-
bmeurer authored
Replace the ADD, SUB, etc. builtins with proper runtime implementations, and expose them as runtime calls that can be used by the code stubs and the interpreter (for now). Also remove all the support runtime functions for ADD, SUB and friends, namely %NumberAdd, %NumberSub, and so on. R=mstarzinger@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg Review URL: https://codereview.chromium.org/1333843002 Cr-Commit-Position: refs/heads/master@{#30680}
-
cbruni authored
BUG= Review URL: https://codereview.chromium.org/1330153003 Cr-Commit-Position: refs/heads/master@{#30676}
-
- 09 Sep, 2015 2 commits
-
-
mbrandy authored
Port 40fbed06 Original commit message: The last changes for vector store functionality, they are in 3 areas: 1) The new vector [keyed] store code stubs - implementation. 2) IC and handler compiler adjustments 3) Odds and ends. A change in ast.cc, a test update, a small Oracle fix. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1330883002 Cr-Commit-Position: refs/heads/master@{#30657}
-
mvstanton authored
On a call to Array(), we patched a call ic. This CL makes do with a single dispatcher which inlines the special handling for the Array() call case, loading the allocation site found in the vector and calling the array constructor stub appropriately. BUG= Review URL: https://codereview.chromium.org/1332563003 Cr-Commit-Position: refs/heads/master@{#30649}
-
- 07 Sep, 2015 1 commit
-
-
cbruni authored
BUG= Review URL: https://codereview.chromium.org/1307743011 Cr-Commit-Position: refs/heads/master@{#30614}
-