- 07 Mar, 2016 40 commits
-
-
titzer authored
R=dschuff@chromium.org BUG= Review URL: https://codereview.chromium.org/1767203002 Cr-Commit-Position: refs/heads/master@{#34565}
-
titzer authored
Local declarations were previously encoded as an optional set of 4 uint16 values as part of the function declaration. This CL implements the current design of moving these declarations to a list of pairs of (type, count) that is part of the body. R=bradnelson@chromium.org,binji@chromium.org BUG= Review URL: https://codereview.chromium.org/1763433002 Cr-Commit-Position: refs/heads/master@{#34564}
-
mbrandy authored
Port 22938040 Original commit message: HInvokeFunction and HApplyArguments instructions now support tail calling. Inlining of calls at tail position is not supported yet and therefore still disabled. The tail-call-megatest was modified so that the usages of "arguments" object do not disable Crankshaft. R=ishell@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1767173002 Cr-Commit-Position: refs/heads/master@{#34563}
-
yangguo authored
R=littledan@chromium.org BUG=v8:4743 LOG=N Committed: https://crrev.com/22f6735ccbe2e341d341e61b9c38ce308b8da655 Cr-Commit-Position: refs/heads/master@{#34553} Review URL: https://codereview.chromium.org/1774513002 Cr-Commit-Position: refs/heads/master@{#34562}
-
adamk authored
Simply call InitializeForOfStatement (split out from InitializeForEachStatement) instead, which already has all the necessary logic. As part of this, trade one bool arg (is_destructuring) for an int (iterable_pos). Review URL: https://codereview.chromium.org/1740293002 Cr-Commit-Position: refs/heads/master@{#34561}
-
verwaest authored
This avoids a minor unnecessary inefficiency (GetRoot) in setting up the LookupIterator. BUG= Review URL: https://codereview.chromium.org/1767123002 Cr-Commit-Position: refs/heads/master@{#34560}
-
titzer authored
R=ahaas@chromium.org,binji@chromium.org BUG= Review URL: https://codereview.chromium.org/1770913002 Cr-Commit-Position: refs/heads/master@{#34559}
-
cbruni authored
Introducing the KeyAccumulator accidentally removed some crucial fast-paths. This CL starts rewriting the KeyAccumulator, step-by-step introducing the special cases again. BUG=chromium:545503, v8:4758 LOG=y Committed: https://crrev.com/9c61327ecb2ee41f34232632e0cac93202bae6b7 Cr-Commit-Position: refs/heads/master@{#34532} Committed: https://crrev.com/b954c872aac60657b400079b7333216ea658dc8a Cr-Commit-Position: refs/heads/master@{#34548} Review URL: https://codereview.chromium.org/1707743002 Cr-Commit-Position: refs/heads/master@{#34558}
-
ahaas authored
Implementation of https://codereview.chromium.org/1756863002 on arm. R=titzer@chromium.org, v8-arm-ports@googlegroups.com Review URL: https://codereview.chromium.org/1765973002 Cr-Commit-Position: refs/heads/master@{#34557}
-
caitpotter88 authored
Add microbenchmark for these methods. BUG=v8:4663 LOG=N R=adamk@chromium.org, littledan@chrommium.org Review URL: https://codereview.chromium.org/1746383003 Cr-Commit-Position: refs/heads/master@{#34556}
-
ulan authored
Since we record slots for weak list fields, there is no need to iterate over them after evacuation. We just need to update the roots for which we didn't record slots. This speeds up the evacuate_update_pointers_weak phase by ~2.5x. BUG= Review URL: https://codereview.chromium.org/1772803002 Cr-Commit-Position: refs/heads/master@{#34555}
-
yangguo authored
Revert of [regexp] extend property classes by script category. (patchset #1 id:1 of https://codereview.chromium.org/1774513002/ ) Reason for revert: wrong noi18n expectations Original issue's description: > [regexp] extend property classes by script category. > > R=littledan@chromium.org > BUG=v8:4743 > LOG=N > > Committed: https://crrev.com/22f6735ccbe2e341d341e61b9c38ce308b8da655 > Cr-Commit-Position: refs/heads/master@{#34553} TBR=littledan@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4743 Review URL: https://codereview.chromium.org/1772563003 Cr-Commit-Position: refs/heads/master@{#34554}
-
yangguo authored
R=littledan@chromium.org BUG=v8:4743 LOG=N Review URL: https://codereview.chromium.org/1774513002 Cr-Commit-Position: refs/heads/master@{#34553}
-
verwaest authored
BUG=chromium:592305 LOG=n Review URL: https://codereview.chromium.org/1770833002 Cr-Commit-Position: refs/heads/master@{#34552}
-
cbruni authored
Revert of [key-accumulator] Starting to reimplement the key-accumulator (patchset #15 id:280001 of https://codereview.chromium.org/1707743002/ ) Reason for revert: gcmole again Original issue's description: > [key-accumulator] Starting to reimplement the key-accumulator > > Introducing the KeyAccumulator accidentally removed some crucial fast-paths. > This CL starts rewriting the KeyAccumulator, step-by-step introducing the > special cases again. > > BUG=chromium:545503, v8:4758 > LOG=y > > Committed: https://crrev.com/9c61327ecb2ee41f34232632e0cac93202bae6b7 > Cr-Commit-Position: refs/heads/master@{#34532} > > Committed: https://crrev.com/b954c872aac60657b400079b7333216ea658dc8a > Cr-Commit-Position: refs/heads/master@{#34548} TBR=verwaest@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:545503, v8:4758 Review URL: https://codereview.chromium.org/1769043003 Cr-Commit-Position: refs/heads/master@{#34551}
-
mstarzinger authored
This moves the post-instantiation work performed on newly allocated JSFunction objects into the Compiler class. The aim is to eventually have all decisions how to compile functions be centralized within the compiler pipeline. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/1764023003 Cr-Commit-Position: refs/heads/master@{#34550}
-
verwaest authored
Additionally clean up the elements accessor api a bit. BUG= Review URL: https://codereview.chromium.org/1770793002 Cr-Commit-Position: refs/heads/master@{#34549}
-
cbruni authored
Introducing the KeyAccumulator accidentally removed some crucial fast-paths. This CL starts rewriting the KeyAccumulator, step-by-step introducing the special cases again. BUG=chromium:545503, v8:4758 LOG=y Committed: https://crrev.com/9c61327ecb2ee41f34232632e0cac93202bae6b7 Cr-Commit-Position: refs/heads/master@{#34532} Review URL: https://codereview.chromium.org/1707743002 Cr-Commit-Position: refs/heads/master@{#34548}
-
littledan authored
The ES2015 specification requires that String.prototype.startsWith, String.prototype.endsWith and String.prototype.includes use the IsRegExp internal algorithm to determine whether to throw a TypeError to prevent a RegExp from being accidentally cast to a String for those methods. That internal algorithm checks the presence/truthiness of Symbol.match to make its determination. This patch switches the builtins to use this correct test, rather than checking for the [[RegExpMatcher]] internal slot as the builtins previously did. R=yangguo Review URL: https://codereview.chromium.org/1762183002 Cr-Commit-Position: refs/heads/master@{#34547}
-
ahaas authored
I64Shl is lowered to a new turbofan operator, WasmWord64Shl. The new operator takes 3 inputs, the low-word input, the high-word input, and the shift, and produces 2 output, the low-word output and the high-word output. At the moment I implemented the lowering only for ia32, but I think the CL is already big enough. I will add the other platforms in separate CLs. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1756863002 Cr-Commit-Position: refs/heads/master@{#34546}
-
mythria authored
Updated mjsunit.status. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1763053002 Cr-Commit-Position: refs/heads/master@{#34545}
-
zhengxing.li authored
The CL #34376 (https://codereview.chromium.org/1740073002 ) added the Inlining test case and X87 failed at it. The reason is: For TEST(Inlining) test case, when level3 function is inlined, the key optimized crankshaft code will like below code normally: ............ 0x21d53b7f 63 ff571b call [edi+0x1b] <----------- should call action() here ;;; <@32,#27> lazy-bailout ;;; <@36,#31> ---- B3 ---- ;;; <@37,#31> gap 0x21d53b82 66 89c1 mov ecx,eax <----------- Both the inlined function’s pc_offset from DeoptimizationInputData and the pc_offset from sample stack points to here, the same pc address ............ So the TEST(Inlining) test case can get the expected inlined code entry and pass.. In fact, the exact code sequence should like the following in crankshaft: ............ 0x21d53b7f 63 ff571b call [edi+0x1b] <----------- should call action() 0xxxxxxxxx xxxx GenerateBodyInstructionPost() <----------- the pc_offset from sample stack points to here ;;; <@32,#27> lazy-bailout ;;; <@36,#31> ---- B3 ---- ;;; <@37,#31> gap 0x21d53b82 66 89c1 mov ecx,eax <----------- the inlined function’s pc_offset from DeoptimizationInputData points to here. ............ For most of architectures in V8, the GenerateBodyInstructionPost() is empty, so both the inlined function’s pc_offset from DeoptimizationInputData and the pc_offset from sample stack points to the same pc address . But if some architecture has special requirement and need to put some instruction after call instruction, the GenerateBodyInstructionPost() will do that work and generate instructions, the inlined function’s pc_offset from DeoptimizationInputData and The pc_offset from sample stack will points to the different pc address, the TEST(Inlining) test case can’t get the expected inlined code entry and failed. For all current architectures in v8, only x87 have this requirement. After communicated with Alexei Filippov <alph@chromium.org> in E-mail, we decided to disable the Inlining test case for x87 now and try to find a solution. BUG= Review URL: https://codereview.chromium.org/1766263002 Cr-Commit-Position: refs/heads/master@{#34544}
-
joransiu authored
S390 specific implementations of crankshaft functions. R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1763233003 Cr-Commit-Position: refs/heads/master@{#34543}
-
ishell authored
HInvokeFunction and HApplyArguments instructions now support tail calling. Inlining of calls at tail position is not supported yet and therefore still disabled. The tail-call-megatest was modified so that the usages of "arguments" object do not disable Crankshaft. TBR=bmeurer@chromium.org BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1760253003 Cr-Commit-Position: refs/heads/master@{#34542}
-
jyan authored
R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,joransiu@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1764153002 Cr-Commit-Position: refs/heads/master@{#34541}
-
yangguo authored
R=rossberg@chromium.org BUG=v8:4807 LOG=N Committed: https://crrev.com/ee98147ea0d994bcfb0d14d43f490ee828d2426f Cr-Commit-Position: refs/heads/master@{#34531} Review URL: https://codereview.chromium.org/1768973002 Cr-Commit-Position: refs/heads/master@{#34540}
-
haraken authored
Now that the embedder side supports v8::kGCCallbackFlagCollectAllAvailableGarbage, this CL removes the old v8::kGCCallbackFlagForced from Heap::CollectAllAvailableGarbage. BUG=591463 LOG=Y Review URL: https://codereview.chromium.org/1769893002 Cr-Commit-Position: refs/heads/master@{#34539}
-
machenbach authored
Revert of [debugger] break at each initialization in a multiple var declaration. (patchset #1 id:1 of https://codereview.chromium.org/1768973002/ ) Reason for revert: [Sheriff] Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/5160 Original issue's description: > [debugger] break at each initialization in a multiple var declaration. > > R=rossberg@chromium.org > BUG=v8:4807 > LOG=N > > Committed: https://crrev.com/ee98147ea0d994bcfb0d14d43f490ee828d2426f > Cr-Commit-Position: refs/heads/master@{#34531} 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:4807 Review URL: https://codereview.chromium.org/1770783003 Cr-Commit-Position: refs/heads/master@{#34538}
-
cbruni authored
Revert of [key-accumulator] Starting to reimplement the key-accumulator (patchset #14 id:260001 of https://codereview.chromium.org/1707743002/ ) Reason for revert: gcmole failure https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/8598 Original issue's description: > [key-accumulator] Starting to reimplement the key-accumulator > > Introducing the KeyAccumulator accidentally removed some crucial fast-paths. > This CL starts rewriting the KeyAccumulator, step-by-step introducing the > special cases again. > > BUG=chromium:545503, v8:4758 > LOG=y > > Committed: https://crrev.com/9c61327ecb2ee41f34232632e0cac93202bae6b7 > Cr-Commit-Position: refs/heads/master@{#34532} TBR=verwaest@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:545503, v8:4758 Review URL: https://codereview.chromium.org/1773593003 Cr-Commit-Position: refs/heads/master@{#34537}
-
verwaest authored
[runtime] JSObject::GetKeys never returns the EnumCache, so we don't need to copy in GetPropertyNames BUG=148757 LOG=n Review URL: https://codereview.chromium.org/1766293002 Cr-Commit-Position: refs/heads/master@{#34536}
-
ivica.bogosavljevic authored
Fixed a few errors in implementation of FastNewObjectStub::Generate for MIPS64 that cause a hadnfull of tests to fail. TEST=cctest/test-heap-profiler/TrackBumpPointerAllocations BUG= Review URL: https://codereview.chromium.org/1773533002 Cr-Commit-Position: refs/heads/master@{#34535}
-
ahaas authored
Instead of using CheckFloatEq and CheckDoubleEq directly, I introduced a macro which first stores the expected result in a volatile variable. Here are some comments of previous CLs: The reason is same as the CL #31808 (issue 1430943002, X87: Change the test case for X87 float operations), please refer: https://codereview.chromium.org/1430943002/. Here is the key comments from CL #31808 Some new test cases use CheckFloatEq(...) and CheckDoubleEq(...) function for result check. When GCC compiling the CheckFloatEq() and CheckDoubleEq() function, those inlined functions has different behavior comparing with GCC ia32 build and x87 build. The major difference is sse float register still has single precision rounding semantic. While X87 register has no such rounding precsion semantic when directly use register value. The V8 turbofan JITTed has exactly same result in both X87 and IA32 port. So we add the following sentence to do type cast to keep the same precision for RunCallInt64ToFloat32/RunCallInt64ToFloat64. Such as: volatile double expect = static_cast<float>(*i). R=titzer@chromium.org, weiliang.lin@intel.com Review URL: https://codereview.chromium.org/1773513002 Cr-Commit-Position: refs/heads/master@{#34534}
-
ishell authored
This is a prerequisite for teaching deoptimizer to drop possible arguments adapter frame below current input frame which is needed to support tail call inlining. Review URL: https://codereview.chromium.org/1761303002 Cr-Commit-Position: refs/heads/master@{#34533}
-
cbruni authored
Introducing the KeyAccumulator accidentally removed some crucial fast-paths. This CL starts rewriting the KeyAccumulator, step-by-step introducing the special cases again. BUG=chromium:545503, v8:4758 LOG=y Review URL: https://codereview.chromium.org/1707743002 Cr-Commit-Position: refs/heads/master@{#34532}
-
yangguo authored
R=rossberg@chromium.org BUG=v8:4807 LOG=N Review URL: https://codereview.chromium.org/1768973002 Cr-Commit-Position: refs/heads/master@{#34531}
-
titzer authored
R=ahaas@chromium.org BUG= Review URL: https://codereview.chromium.org/1766323002 Cr-Commit-Position: refs/heads/master@{#34530}
-
yangguo authored
NOTRY=true TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/1773573002 Cr-Commit-Position: refs/heads/master@{#34529}
-
yangguo authored
Character ranges starting at 1 are not correctly negated. R=jkummerow@chromium.org BUG=chromium:592343 LOG=Y Review URL: https://codereview.chromium.org/1768093002 Cr-Commit-Position: refs/heads/master@{#34528}
-
mythria authored
TestNotEqualsStrict is converted to a TestEqualsStrict and logical not by the parser. Also, CompareIC does not have an implementation for TestNotEqualsStrict. Hence, removing this bytecode. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1768593002 Cr-Commit-Position: refs/heads/master@{#34527}
-
mstarzinger authored
The enum in question is (and should) no longer be used outside of the compiler API and hence is being moved back into the Compiler class. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1762323002 Cr-Commit-Position: refs/heads/master@{#34526}
-