- 11 Feb, 2016 29 commits
-
-
mstarzinger authored
This replaces the bytecode in question with a runtime call within the bytecode stream. The tradeoff is to safe one bytecode opcode for more expensive encoding of lookup slot deletion. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1690913002 Cr-Commit-Position: refs/heads/master@{#33907}
-
mstarzinger authored
This change correctly sets the {CatchPrediction} field in exception handler tables for bytecode and optimized code. It also adds tests independent of promise handling for this prediction, to ensure all our backends are in sync on their prediction. R=rmcilroy@chromium.org,yangguo@chromium.org TEST=mjsunit/compiler/debug-catch-prediction BUG=v8:4674 LOG=n Review URL: https://codereview.chromium.org/1690973002 Cr-Commit-Position: refs/heads/master@{#33906}
-
machenbach authored
Revert of Enable asm-wasm mjsunit tests. (patchset #1 id:1 of https://codereview.chromium.org/1687813003/ ) Reason for revert: [Sheriff] Breaks chromebooks with arm: https://build.chromium.org/p/client.v8/builders/V8%20Arm/builds/4397 You can reland, but please keep it skipped for arm. Original issue's description: > Enable asm-wasm mjsunit tests. > > BUG= https://code.google.com/p/v8/issues/detail?id=4203 > TEST=mjsunit/asm-wasm > R=aseemgarg@chromium.org,titzer@chromium.org > LOG=N > > Committed: https://crrev.com/46728d4d9576585bceaa66b8362755c29d3e54bd > Cr-Commit-Position: refs/heads/master@{#33883} TBR=aseemgarg@chromium.org,titzer@chromium.org,bradnelson@google.com,bradnelson@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= https://code.google.com/p/v8/issues/detail?id=4203 Review URL: https://codereview.chromium.org/1689113003 Cr-Commit-Position: refs/heads/master@{#33905}
-
yangguo authored
R=rmcilroy@chromium.org, vogelheim@chromium.org BUG=v8:4690 LOG=N Review URL: https://codereview.chromium.org/1682853004 Cr-Commit-Position: refs/heads/master@{#33904}
-
Michael Achenbach authored
Cr-Commit-Position: refs/heads/master@{#33903}
-
machenbach authored
Revert of [regexp] ship unicode regexps. (patchset #1 id:1 of https://codereview.chromium.org/1689113002/ ) Reason for revert: [Sheriff] Speculative revert for gc stress failures: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/1726 Blamelists are screwed up currently... Original issue's description: > [regexp] ship unicode regexps. > > R=rossberg@chromium.org > BUG=v8:2952 > LOG=N > > Committed: https://crrev.com/3a2fbc3a4ed2802b52659df2209b930200d63b29 > Cr-Commit-Position: refs/heads/master@{#33899} TBR=rossberg@chromium.org,yangguo@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:2952 Review URL: https://codereview.chromium.org/1688803005 Cr-Commit-Position: refs/heads/master@{#33902}
-
cbruni authored
By keeping track of the stack of counters we can properly subtract the subcounter times and properly measure the own-time spent in each runtime function. This is useful to get more details for builtins like HandleApiCall which are typical top-level entries for chome which previously prevent measurements of sub-calls to builtins/runtime functions. BUG= Review URL: https://codereview.chromium.org/1681943002 Cr-Commit-Position: refs/heads/master@{#33901}
-
machenbach authored
Revert of [Interpreter] Rename GetCountOperand to GetRegisterCountOperand. (patchset #1 id:20001 of https://codereview.chromium.org/1691433002/ ) Reason for revert: [Sheriff] Breaks the tree: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20builder/builds/13892 Blamelists are wrong because of overloaded master. The trybots on this CL might have been outdated by the time of commit... Please rebase and retry. Original issue's description: > [Interpreter] Rename GetCountOperand to GetRegisterCountOperand. > > Apparently, this BytecodeArrayIterator method was missed during the > previous refactor. No other (collateral) change was done. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/3781ca79f5c48b55d7f0bf6df370ec11515a1466 > Cr-Commit-Position: refs/heads/master@{#33897} TBR=oth@chromium.org,rmcilroy@chromium.org,mstarzinger@chromium.org,ssanfilippo@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/1690963002 Cr-Commit-Position: refs/heads/master@{#33900}
-
yangguo authored
R=rossberg@chromium.org BUG=v8:2952 LOG=N Review URL: https://codereview.chromium.org/1689113002 Cr-Commit-Position: refs/heads/master@{#33899}
-
mstarzinger authored
This changes "d8" to no longer report exceptions as being "caught" when it comes to the catch prediction mechanism in our debugger. This treats scripts as being truly top-level when it comes to exception handling and will allow us to properly test the catch prediction mechanism using just mjsunit tests alone. R=yangguo@chromium.org BUG=v8:4674 LOG=n Review URL: https://codereview.chromium.org/1691723002 Cr-Commit-Position: refs/heads/master@{#33898}
-
ssanfilippo authored
Apparently, this BytecodeArrayIterator method was missed during the previous refactor. No other (collateral) change was done. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1691433002 Cr-Commit-Position: refs/heads/master@{#33897}
-
yangguo authored
Initial fix was simply wrong. R=verwaest@chromium.org BUG=v8:4524 LOG=N Review URL: https://codereview.chromium.org/1688163003 Cr-Commit-Position: refs/heads/master@{#33896}
-
verwaest authored
In the case of a simple fast-mode receiver without fancy properties, we can just walk over the descriptor array to find all its initial property names. As long as the map stays the same, we can also use that descriptor array to figure out how to handle the properties. This speeds up https://github.com/kpdecker/six-speed/tree/master/tests/object-assign by ~2x. BUG= Review URL: https://codereview.chromium.org/1688953004 Cr-Commit-Position: refs/heads/master@{#33895}
-
rmcilroy authored
Saves and restores the dispatch pointer during calls to enable the debugger to switch the dispatch table used by a function during it's execution. Also moves the accumulator and context nodes to be Variables so that they will be properly merged across branches. BUG=v8:4280,v8:4690 LOG=N Review URL: https://codereview.chromium.org/1684073002 Cr-Commit-Position: refs/heads/master@{#33894}
-
cbruni authored
Additionally list C++ builtins as well under --runtime_call_stats. Let's try to keep all counters in one place, that makes it a bit easier to maintain and especially discard unused ones. BUG= Committed: https://crrev.com/6bc71431995d49d4ca4a2ea9c75e5add5f345225 Cr-Commit-Position: refs/heads/master@{#33847} Review URL: https://codereview.chromium.org/1678973002 Cr-Commit-Position: refs/heads/master@{#33893}
-
yangguo authored
See http://tc39.github.io/ecma262/#prod-RegExpUnicodeEscapeSequence R=erik.corry@gmail.com, erikcorry@chromium.org BUG=v8:2952 LOG=N Review URL: https://codereview.chromium.org/1681893002 Cr-Commit-Position: refs/heads/master@{#33892}
-
jarin authored
This removes uses of JSFunction by the (proper) deoptimizer. This will be useful when we escape analyze JSFunction away. Unfortunately, the debugger still needs JSFunction, so escape analysis would not work yet. Review URL: https://codereview.chromium.org/1686183003 Cr-Commit-Position: refs/heads/master@{#33891}
-
mvstanton authored
BUG= Committed: https://crrev.com/5833e8e8a437cd66405784263ccc45e73470fd42 Cr-Commit-Position: refs/heads/master@{#33870} Review URL: https://codereview.chromium.org/1683043003 Cr-Commit-Position: refs/heads/master@{#33890}
-
cbruni authored
Revert of [counters] moving runtime counters to counter.h (patchset #1 id:1 of https://codereview.chromium.org/1688783005/ ) Reason for revert: failing gc-stress tests Original issue's description: > Reland of [counters] moving runtime counters to counter.h (patchset #1 id:1 of https://codereview.chromium.org/1681923003/ ) > > Reason for revert: > This CL was not the cause for the TSAN failures, the instruction-selector backend for x64 emitted a wrong compare which accidentally showed up with tsan + code moves. > The instruction-selectors changes have been reverted with https://codereview.chromium.org/1693433002 > > Original issue's description: > > Revert of [counters] moving runtime counters to counter.h (patchset #1 id:1 of https://codereview.chromium.org/1678973002/ ) > > > > Reason for revert: > > [Sheriff] Breaks TSAN: > > https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/7727 > > > > Original issue's description: > > > [counters] moving runtime counters to counter.h > > > > > > Additionally list C++ builtins as well under --runtime_call_stats. > > > Let's try to keep all counters in one place, that makes it a bit > > > easier to maintain and especially discard unused ones. > > > > > > BUG= > > > > > > Committed: https://crrev.com/6bc71431995d49d4ca4a2ea9c75e5add5f345225 > > > Cr-Commit-Position: refs/heads/master@{#33847} > > > > TBR=jarin@chromium.org,cbruni@chromium.org > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG= > > > > Committed: https://crrev.com/2d669b96639517cfc33e6fc6d4c3814587bc7366 > > Cr-Commit-Position: refs/heads/master@{#33848} > > TBR=jarin@chromium.org,machenbach@chromium.org > # Not skipping CQ checks because original CL landed more than 1 days ago. > BUG= > > Committed: https://crrev.com/ad943fe44ede22b90b871e1233334dff5ff545c3 > Cr-Commit-Position: refs/heads/master@{#33887} TBR=jarin@chromium.org,machenbach@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/1687313002 Cr-Commit-Position: refs/heads/master@{#33889}
-
ssanfilippo authored
This is a follow-up to https://crrev.com/1671863002, adding the capability to print the contents of the constant pool. The expected type of the pool is taken from command line, and it's either: * string/int/double: assume all constants have the specified type. This way, we can emit a meaningful representation, e.g. a quoted string for type string and so on. All the constants in the pool must have the same type, otherwise one or more CHECK() will fail and the program will eventually crash. * mixed: print the InstanceType tag instead of the actual value. This is the choice for those tests where the type of the constants in the pool is not uniform, however only a type tag is printed, not the actual value of the entries. SMIs are an exception, since they do not have an InstanceType tag, so kInstanceTypeDontCare is printed instead. In addition to that, functions Print{ExpectedSnippet,BytecodeSequence} have been extracted with no functional change. It's just for improving readability, since the code is becoming quite long. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1686963002 Cr-Commit-Position: refs/heads/master@{#33888}
-
cbruni authored
Reland of [counters] moving runtime counters to counter.h (patchset #1 id:1 of https://codereview.chromium.org/1681923003/ ) Reason for revert: This CL was not the cause for the TSAN failures, the instruction-selector backend for x64 emitted a wrong compare which accidentally showed up with tsan + code moves. The instruction-selectors changes have been reverted with https://codereview.chromium.org/1693433002 Original issue's description: > Revert of [counters] moving runtime counters to counter.h (patchset #1 id:1 of https://codereview.chromium.org/1678973002/ ) > > Reason for revert: > [Sheriff] Breaks TSAN: > https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/7727 > > Original issue's description: > > [counters] moving runtime counters to counter.h > > > > Additionally list C++ builtins as well under --runtime_call_stats. > > Let's try to keep all counters in one place, that makes it a bit > > easier to maintain and especially discard unused ones. > > > > BUG= > > > > Committed: https://crrev.com/6bc71431995d49d4ca4a2ea9c75e5add5f345225 > > Cr-Commit-Position: refs/heads/master@{#33847} > > TBR=jarin@chromium.org,cbruni@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG= > > Committed: https://crrev.com/2d669b96639517cfc33e6fc6d4c3814587bc7366 > Cr-Commit-Position: refs/heads/master@{#33848} TBR=jarin@chromium.org,machenbach@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= Review URL: https://codereview.chromium.org/1688783005 Cr-Commit-Position: refs/heads/master@{#33887}
-
ishell authored
1) Update profiling counters in Full codegen. 2) Call Runtime::kTraceTailCall when tracing is on test/mjsunit/es6/tail-call-simple.js is disabled for now, because Turbofan does not fully support TCO yet. BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1670133002 Cr-Commit-Position: refs/heads/master@{#33886}
-
ishell authored
This CL also removes tail call support made so far from Crankshaft. BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1683793004 Cr-Commit-Position: refs/heads/master@{#33885}
-
epertoso authored
Revert of [turbofan] Fixes the code generation for branches on x64 when the condition is Word64Equal. (patchset #1 id:1 of https://codereview.chromium.org/1677503002/ ) Reason for revert: Code like the example given in the CL description was produced, for example, by code-stub-assembler.cc. Reverting this, and try to fix the root cause instead. Original issue's description: > [turbofan] Fixes the code generation for branches on x64 when the condition is Word64Equal. > > Before: > > REX.W cmpq r9,r8 > setzl r8l > movzxbl r8,r8 > REX.W cmpq r8,0x0 > jz 185 > > After: > > REX.W cmpq r9,r8 > jnz 149 > > Committed: https://crrev.com/75cc8352d06aada2e9131fdae793299ef73fb639 > Cr-Commit-Position: refs/heads/master@{#33784} TBR=bmeurer@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review URL: https://codereview.chromium.org/1693433002 Cr-Commit-Position: refs/heads/master@{#33884}
-
bradnelson authored
BUG= https://code.google.com/p/v8/issues/detail?id=4203 TEST=mjsunit/asm-wasm R=aseemgarg@chromium.org,titzer@chromium.org LOG=N Review URL: https://codereview.chromium.org/1687813003 Cr-Commit-Position: refs/heads/master@{#33883}
-
jarin authored
JS_FRAME_FUNCTION can be expressed using the STACK_SLOT translation. Review URL: https://codereview.chromium.org/1688023003 Cr-Commit-Position: refs/heads/master@{#33882}
-
bmeurer authored
There are a bunch of places in our builtins where we use %_Arguments and %_ArgumentsLength for no good reason, as arguments object and/or rest parameter is as good and performant in these cases. Now the only uses of %_Arguments and %_ArgumentsLength left are in string.js, which requires dedicated investigation. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_dbg R=yangguo@chromium.org Committed: https://crrev.com/2160429fd458e3c095475e718c97f77ac90d906f Cr-Commit-Position: refs/heads/master@{#33834} Review URL: https://codereview.chromium.org/1678953004 Cr-Commit-Position: refs/heads/master@{#33881}
-
bmeurer authored
Add dedicated %LoadLookupSlot, %LoadLookupSlotInsideTypeof, %LoadLookupSlotForCall, %StoreLookupSlot_Sloppy and %StoreLookupSlot_Strict runtime entry points and use them appropriately in the various compilers. This way we can finally drop the machine operators from the JS graph level completely in TurboFan. Also drop the funky JSLoadDynamic operator from TurboFan, which was by now just a small wrapper around the runtime call to %LoadLookupSlot. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1683103002 Cr-Commit-Position: refs/heads/master@{#33880}
-
v8-autoroll authored
Rolling v8/build/gyp to 5170bfd38fe79bd5b16aa7f6c5439fb90a37ae66 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1685413002 Cr-Commit-Position: refs/heads/master@{#33879}
-
- 10 Feb, 2016 11 commits
-
-
mbrandy authored
Port 5de27c34 Original commit message: Calls use registers for target, new_target and argument count. We don't always respect argument count. It didn't bite us in the past because the code paths where we clobbered it never used it, though in future it could be an issue. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1687943002 Cr-Commit-Position: refs/heads/master@{#33878}
-
mbrandy authored
Port cfbd2561 Original commit message: Preparing the young generation for (real) non-contiguous backing memory, this change removes object masks that are used to compute containment in semi and new space. The masks are replaced by lookups for object tags and page headers, where possible. Details: - Use the fast checks (page header lookups) for containment in regular code. - Use the slow version that masks out the page start adress and iterates all pages of a space for debugging/verification. - The slow version works for off-heap/unmapped memory. - Encapsulate all checks for the old->new barrier in Heap::RecordWrite(). R=mlippautz@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:581412 LOG=N Review URL: https://codereview.chromium.org/1687113002 Cr-Commit-Position: refs/heads/master@{#33877}
-
mbrandy authored
PPC: Mark null and undefined as undetectable, and use it to handle abstract equality comparison in the generic compare ic Port 3ce9e808 Original commit message: Marking as undetectable makes abstract equality of null, undefined, and other undetectable objects easier. Supporting it in the generic compare IC significantly speeds up dynamic comparison between those values and JSReceivers by not falling back to the runtime. R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1684133003 Cr-Commit-Position: refs/heads/master@{#33876}
-
hpayer authored
Black allocation during scavenges will push objects on the marking deque that point to to-space. They should not be cleared. BUG=chromium:561449 LOG=n Review URL: https://codereview.chromium.org/1683983003 Cr-Commit-Position: refs/heads/master@{#33875}
-
ssanfilippo authored
The previous implementation used GetRawOperand(), which allows a nicely unified handling of all scalar types, but returns an unsigned type. Because of this, generate-bytecode-expectations couldn't properly handle negative numbers. This commit differentiate between different types of scalar operands and uses the appropriate getter from i::interpreter::BytecodeArrayIterator, thus correctly handling signed types where needed. Two new helpers have been added to i::interpreter::Bytecodes: * IsImmediateOperandType() * IsIndexOperandType() with the intuitive semantic. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1684113002 Cr-Commit-Position: refs/heads/master@{#33874}
-
rmcilroy authored
Moves InterpreterAssembler out of the compiler directory and into the interpreter directory. Makes InterpreterAssembler as subclass of CodeStubAssembler. As part of this change, the special bytecode dispatch linkage type is removed and instead we use a InterfaceDispatchDescriptor and a normal CodeStub linkage type. Removes a bunch of duplicated logic in InterpreterAssembler and instead uses the CodeStubAssembler logic. Refactors Interpreter with these changes. Modifies CodeStubAssembler to add the extra operations required by the Interpreter (extra call types, raw memory access and some extra binary ops). Also adds the ability for subclasses to add extra prologue and epilogue operations around calls, which is required for the Interpreter. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1673333004 Cr-Commit-Position: refs/heads/master@{#33873}
-
yangguo authored
Currently we only support general categories for property classes. R=erik.corry@gmail.com, erikcorry@chromium.org, littledan@chromium.org BUG=v8:4743 LOG=N Review URL: https://codereview.chromium.org/1685593002 Cr-Commit-Position: refs/heads/master@{#33872}
-
machenbach authored
Revert of Implement symbol @@hasInstance for ES6 instanceof support. (patchset #2 id:20001 of https://codereview.chromium.org/1683043003/ ) Reason for revert: [Sheriff] Breaks: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/1382/ Original issue's description: > Implement symbol @@hasInstance for ES6 instanceof support. > > BUG= > > Committed: https://crrev.com/5833e8e8a437cd66405784263ccc45e73470fd42 > Cr-Commit-Position: refs/heads/master@{#33870} TBR=bmeurer@chromium.org,mvstanton@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/1686123002 Cr-Commit-Position: refs/heads/master@{#33871}
-
mvstanton authored
BUG= Review URL: https://codereview.chromium.org/1683043003 Cr-Commit-Position: refs/heads/master@{#33870}
-
yangguo authored
The break location heavily relies on relocation info. This change abstracts that away. Currently there is only one implementation for this interface, for JIT code. Future changes will introduce an implementation to iterate bytecode arrays. R=rmcilroy@chromium.org, vogelheim@chromium.org BUG=v8:4690 LOG=N Review URL: https://codereview.chromium.org/1682853003 Cr-Commit-Position: refs/heads/master@{#33869}
-
verwaest authored
This reduces runtime of https://github.com/kpdecker/six-speed/blob/master/tests/for-of-array/for-of-array.es6 by 40%. BUG= Review URL: https://codereview.chromium.org/1681143003 Cr-Commit-Position: refs/heads/master@{#33868}
-