- 29 Nov, 2016 14 commits
-
-
leszeks authored
Revert of [ignition/turbo] Perform liveness analysis on the bytecodes (patchset #17 id:320001 of https://codereview.chromium.org/2523893003/ ) Reason for revert: Breaks the build: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared/builds/14886 Original issue's description: > [ignition/turbo] Perform liveness analysis on the bytecodes > > Replaces the graph-based liveness analyzer in the bytecode graph builder > with an initial bytecode-based liveness analysis pass, which is added to > the existing loop extent analysis. > > Now the StateValues in the graph have their inputs initialised to > optimized_out, rather than being modified after the graph is built. > > Committed: https://crrev.com/1852300954c216c29cf93444430681d213e87925 > Cr-Commit-Position: refs/heads/master@{#41344} TBR=jarin@chromium.org,rmcilroy@chromium.org,yangguo@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/2541443002 Cr-Commit-Position: refs/heads/master@{#41346}
-
bmeurer authored
This introduces three new types OtherCallable, CallableProxy (and OtherProxy), and BoundFunction to make it possible to express Callable in the Type system. It also forces all undetectable receivers to be Callable, which matches the use case for undetectable, namely document.all (guarded by proper checks and tests). It also uses these new types to properly optimize instanceof (indirectly via OrdinaryHasInstance) based on the type of the constructor and the object. So we are able to constant-fold certain instanceof expressions based on types and completely avoid the builtin call. R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2535753004 Cr-Commit-Position: refs/heads/master@{#41345}
-
leszeks authored
Replaces the graph-based liveness analyzer in the bytecode graph builder with an initial bytecode-based liveness analysis pass, which is added to the existing loop extent analysis. Now the StateValues in the graph have their inputs initialised to optimized_out, rather than being modified after the graph is built. Review-Url: https://codereview.chromium.org/2523893003 Cr-Commit-Position: refs/heads/master@{#41344}
-
cbruni authored
FunctionTemplateInfo::SetPrototypeProviderTemplate adds support for sharing prototypes between several function templates. This is used to properly set up Image.prototype and HTMLImageElement.protoype which should be equal according to the spec. BUG=chromium:2969 Review-Url: https://codereview.chromium.org/2531653002 Cr-Commit-Position: refs/heads/master@{#41343}
-
machenbach authored
Revert of [heap] Reland: Use store buffer for writes coming from mutator. (patchset #1 id:1 of https://codereview.chromium.org/2529293004/ ) Reason for revert: Suspect for tsan failures: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/12915 Original issue's description: > [heap] Reland: Use store buffer for writes coming from mutator. > > This reverts commit 061c2ab2. > > BUG=chromium:648568, chromium:669270 > > Committed: https://crrev.com/fa2fdf275197185d9bca9d5e72c16a60722c3893 > Cr-Commit-Position: refs/heads/master@{#41341} TBR=mlippautz@chromium.org,hpayer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:648568, chromium:669270 Review-Url: https://codereview.chromium.org/2534803004 Cr-Commit-Position: refs/heads/master@{#41342}
-
hpayer authored
This reverts commit 061c2ab2. BUG=chromium:648568, chromium:669270 Review-Url: https://codereview.chromium.org/2529293004 Cr-Commit-Position: refs/heads/master@{#41341}
-
ahaas authored
BUG=v8:5683 NOTRY=true R=machenbach@chromium.org Review-Url: https://codereview.chromium.org/2541433002 Cr-Commit-Position: refs/heads/master@{#41340}
-
mstarzinger authored
The range-based exception handler table is by now only used for bytecode arrays. The semantics of the interpreter are that bytecode offsets point to the beginning of the currently executing bytecode instruction. Uses hence need to compensate for lookups based on a "retrun address". This change removes the need for such off-by-one compensations by changing lookup semantics to be based on "current instruction" offsets. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2534893002 Cr-Commit-Position: refs/heads/master@{#41339}
-
jgruber authored
Microbenchmarks show a 4x improvement on the fast path and 2.5x improvement on the slow path when compared to the CPP builtin implementation. Compared to the old JS implementation, the fast path is 20% faster and the slow path 35% slower. BUG=v8:5339,v8:5562 Review-Url: https://codereview.chromium.org/2527963002 Cr-Commit-Position: refs/heads/master@{#41338}
-
machenbach authored
Revert of [ic] Use validity cells to protect keyed element stores against object's prototype chain modificati… (patchset #2 id:40001 of https://codereview.chromium.org/2534613002/ ) Reason for revert: Layout test crashes: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/11691 Original issue's description: > [ic] Use validity cells to protect keyed element stores against object's prototype chain modifications. > > ... instead of clearing of all the KeyedStoreICs which didn't always work. > > BUG=chromium:662907, v8:5561 > TBR=verwaest@chromium.org, bmeurer@chromium.org > > Committed: https://crrev.com/a39522f44f7e0be4686831688917e9675255dcaf > Cr-Commit-Position: refs/heads/master@{#41332} TBR=jkummerow@chromium.org,ishell@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:662907, v8:5561 Review-Url: https://codereview.chromium.org/2538693002 Cr-Commit-Position: refs/heads/master@{#41337}
-
jgruber authored
If the prototype's map is not marked as fast, it is made fast after setup, breaking current RegExp fast path checks. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2537483002 Cr-Commit-Position: refs/heads/master@{#41336}
-
eostroukhov authored
BUG=none Review-Url: https://codereview.chromium.org/2540463003 Cr-Commit-Position: refs/heads/master@{#41335}
-
kozyatinskiy authored
V8 internally uses conversions.h to convert number to string, we can use these methods too instead of slow std::stringstream with std::locale. BUG=chromium:661497,v8:5551 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2534013002 Cr-Commit-Position: refs/heads/master@{#41334}
-
henrique.ferreiro authored
TypedArrays need specific checks before calling OrdinaryDefineOwnProperty. BUG=v8:5328 Review-Url: https://codereview.chromium.org/2431223005 Cr-Commit-Position: refs/heads/master@{#41333}
-
- 28 Nov, 2016 26 commits
-
-
ishell authored
[ic] Use validity cells to protect keyed element stores against object's prototype chain modifications. ... instead of clearing of all the KeyedStoreICs which didn't always work. BUG=chromium:662907, v8:5561 TBR=verwaest@chromium.org, bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2534613002 Cr-Commit-Position: refs/heads/master@{#41332}
-
jshin authored
Due to a typo in runtime-i18n.js, 'ç'(U+00E7) was not uppercased while '÷'(U+00F7) was incorrectly uppercased to '×'(U+00D7). Add a comprehensive test for Latin-1 supplemental block (U+00A0 ~ U+00FF). (they're special-cased for speed-up and needs to have a test for the range.). TEST=intl/general/case-mapping BUG=v8:5681 Review-Url: https://codereview.chromium.org/2533033003 Cr-Commit-Position: refs/heads/master@{#41331}
-
ishell authored
BUG=chromium:666046 Review-Url: https://codereview.chromium.org/2539503002 Cr-Commit-Position: refs/heads/master@{#41330}
-
adamk authored
R=jochen@chromium.org Review-Url: https://codereview.chromium.org/2473153004 Cr-Commit-Position: refs/heads/master@{#41329}
-
hpayer authored
BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2537533002 Cr-Commit-Position: refs/heads/master@{#41328}
-
ishell authored
BUG=chromium:666046 Review-Url: https://codereview.chromium.org/2539493002 Cr-Commit-Position: refs/heads/master@{#41327}
-
ishell authored
BUG= Review-Url: https://codereview.chromium.org/2537523002 Cr-Commit-Position: refs/heads/master@{#41326}
-
rodolph.perfetta authored
BUG= Review-Url: https://codereview.chromium.org/2537453003 Cr-Commit-Position: refs/heads/master@{#41325}
-
rmcilroy authored
Revert of [turbofan] Utilize String comparison feedback. (patchset #1 id:1 of https://codereview.chromium.org/2523463002/ ) Reason for revert: Seems to regress speedometer on Ignition and doesn't cause any improvements elsewhere. BUG=chromium:668651 Original issue's description: > [turbofan] Utilize String comparison feedback. > > Make use of the previously introduced String feedback for compare > operations in TurboFan. > > R=jarin@chromium.org > BUG=v8:5267,v8:5400 > > Committed: https://crrev.com/5d4253ecfb6ddcbbd7eb5654e728efa9559284a2 > Cr-Commit-Position: refs/heads/master@{#41163} TBR=jarin@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=v8:5267,v8:5400 Review-Url: https://codereview.chromium.org/2531183003 Cr-Commit-Position: refs/heads/master@{#41324}
-
mstarzinger authored
This removes the supporting function to perform a range-lookup in the exception handler table for unoptimized code. Such tables are by now guaranteed to be empty, the deoptimizer cannot encounter this case. R=jarin@chromium.org Committed: https://crrev.com/1f27ed9d7da78904e0418364c6394f913eabbe70 Review-Url: https://codereview.chromium.org/2529343003 Cr-Original-Commit-Position: refs/heads/master@{#41318} Cr-Commit-Position: refs/heads/master@{#41323}
-
zhengxing.li authored
The reason: The CL #41255 (https://codereview.chromium.org/2520363002 ) reimplemnt the Number.prototype.toString and the added number-tostring test cases failed at x87. Similar to many previos fixing CLs, i.e.: CL #37371 (https://codereview.chromium.org/2111493002 ), the root reason is: The Gcc compiler and it's dependent C++ libraris on linux platform use x87 in extended 80-bit double precision by default. So the reimplemented DoubleToRadixCString() will generate extended 80-bit double precision result which isn't the expected standard 64-bit double precision value. Although modifying DoubleToRadixCString() function to manually do the 80-bit <--> 64-bit conversion for each double/float computation step can fix this issue, but it wll drop the DoubleToRadixCString() function's performance of other architectures. This CL put the failed number-tostring test cases into number-tostring-big-integer.js and disables it for x87. BUG= Review-Url: https://codereview.chromium.org/2532073002 Cr-Commit-Position: refs/heads/master@{#41322}
-
tebbi authored
Removed a redundant check: If completion is not normal, then #iterator cannot be undefined. Review-Url: https://codereview.chromium.org/2533803002 Cr-Commit-Position: refs/heads/master@{#41321}
-
vogelheim authored
BUG=chromium:663410 Review-Url: https://codereview.chromium.org/2533463002 Cr-Commit-Position: refs/heads/master@{#41320}
-
mstarzinger authored
Revert of [deoptimizer] Remove dead Code::LookupRangeInHandlerTable. (patchset #2 id:20001 of https://codereview.chromium.org/2529343003/ ) Reason for revert: Seems to break TSAN builds. https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/12897/steps/Check/logs/stack-traces Original issue's description: > [deoptimizer] Remove dead Code::LookupRangeInHandlerTable. > > This removes the supporting function to perform a range-lookup in the > exception handler table for unoptimized code. Such tables are by now > guaranteed to be empty, the deoptimizer cannot encounter this case. > > R=jarin@chromium.org > > Committed: https://crrev.com/1f27ed9d7da78904e0418364c6394f913eabbe70 > Cr-Commit-Position: refs/heads/master@{#41318} TBR=jarin@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/2536673002 Cr-Commit-Position: refs/heads/master@{#41319}
-
mstarzinger authored
This removes the supporting function to perform a range-lookup in the exception handler table for unoptimized code. Such tables are by now guaranteed to be empty, the deoptimizer cannot encounter this case. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2529343003 Cr-Commit-Position: refs/heads/master@{#41318}
-
jgruber authored
BUG=v8:5339 NOTRY=true Review-Url: https://codereview.chromium.org/2532013003 Cr-Commit-Position: refs/heads/master@{#41317}
-
clemensh authored
Before, the encoded variant was stored in the compiled module, and the decoded one in the debug info (per instance). The decoded table was a FixedArray of ByteArrays. Now, also the decoded table is a flat ByteArray, and it encodes whether it is encoded or decoded. This saves memory and allows to store encoded and decoded variant in the same field. The table is automatically decoded on the first use. This CL also removes some unused and unimplemented methods from WasmDebugInfo (probably merge artifacts). That class is now pretty much empty, but we might still need it for breakpoint support. R=titzer@chromium.org, ahaas@chromium.org Review-Url: https://codereview.chromium.org/2522953002 Cr-Commit-Position: refs/heads/master@{#41316}
-
jkummerow authored
Introducing a TF_BUILTIN macro that wraps CodeStubAssembler usage into a convenient interface (using a subclass under the hood). No changes since previous attempt; this was only reverted because it blocked another revert. Original review: https://codereview.chromium.org/2517833005/ TBR=ishell@chromium.org Review-Url: https://codereview.chromium.org/2529373002 Cr-Commit-Position: refs/heads/master@{#41315}
-
jarin authored
BUG=chromium:668760 Review-Url: https://codereview.chromium.org/2530403002 Cr-Commit-Position: refs/heads/master@{#41314}
-
petermarshall authored
All super constructor calls go through the ignition + turbofan pipeline, so this is dead code. BUG=v8:5657 Review-Url: https://codereview.chromium.org/2525233003 Cr-Commit-Position: refs/heads/master@{#41313}
-
yangguo authored
BUG=v8:5510 R=jgruber@chromium.org Review-Url: https://codereview.chromium.org/2535733002 Cr-Commit-Position: refs/heads/master@{#41312}
-
yangguo authored
BUG=v8:5510 R=jgruber@chromium.org Review-Url: https://codereview.chromium.org/2536573002 Cr-Commit-Position: refs/heads/master@{#41311}
-
Jochen Eisinger authored
R=verwaest@chromium.org TBR=marja@chromium.org, verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/2531233002 . Cr-Commit-Position: refs/heads/master@{#41310}
-
jochen authored
They're supposed to be stable across several parse passes, so we'll also store them in the associated SharedFunctionInfos To achieve this, the PreParser and Parser need to generated the same number of FunctionLiterals. To achieve this, we teach the PreParser about desuggaring of class literals. For regular functions, the function IDs are assigned in the order they occur in the source. For arrow functions, however, we only know that it's an arrow function after parsing the parameter list, and so the ID assigned to the arrow function is larger than the IDs assigned to functions defined in the parameter list. This implies that we have to reset the function ID counter to before the parameter list when re-parsing an arrow function. To be able to do this, we store the number of function literals found in the parameter list of arrow functions as well. BUG=v8:5589 Review-Url: https://codereview.chromium.org/2481163002 Cr-Commit-Position: refs/heads/master@{#41309}
-
yangguo authored
R=jgruber@chromium.org BUG=v8:5510 Review-Url: https://codereview.chromium.org/2532893002 Cr-Commit-Position: refs/heads/master@{#41308}
-
marja authored
ThreadedList is more memory-efficient than ZoneList. This also enables us to use ThreadedList when making Preparser track parameters (upcoming work). BUG=v8:5501 Review-Url: https://codereview.chromium.org/2531593002 Cr-Commit-Position: refs/heads/master@{#41307}
-