- 13 Nov, 2015 22 commits
-
-
mbrandy authored
Port ff283f7d Original commit message: * Limit triggering of tail calls to explicit use of a new inline runtime function %_TailCall. %_TailCall works just like %_Call except for using tail-calling mechanics (currently only in TF). * Remove hack that recognized some specific usages of %_Call and converted them into tail calls. * Support tail calls for all calls where the number of callee stack parameters is less than or equal to the number of caller stack parameters. * Use the gap resolver to swizzle parameters and registers to tail calls. R=danno@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG=v8:4076 LOG=n Review URL: https://codereview.chromium.org/1442143002 Cr-Commit-Position: refs/heads/master@{#31994}
-
mlippautz authored
There is no need to require kRingbufferMaxSize samples for estimating the compaction speed, as the number is already quite stable with a single sample (which may include timings from compacting multiple pages). R=hpayer@chromium.org BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1440423002 Cr-Commit-Position: refs/heads/master@{#31993}
-
ishell authored
This CL introduces the following visitors: 1) RecordMigratedSlotVisitor which simplifies MarkCompactCollector::MigrateObject(). 2) IteratePointersToFromSpaceVisitor which simplifies Heap::IteratePointersToFromSpace(). 3) FindPointersToNewSpaceVisitor which simplifies StoreBuffer::IteratePointersToNewSpace(). These changes make the object's body descriptors the one and only place that knows how to traverse the object. Review URL: https://codereview.chromium.org/1441453002 Cr-Commit-Position: refs/heads/master@{#31992}
-
mbrandy authored
Avoid unnecessary casts to double as this my mistakenly alter NaN bits. R=ahaas@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/1445603002 Cr-Commit-Position: refs/heads/master@{#31991}
-
jkummerow authored
In preparation for JSProxy::GetOwnProperty. R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1443683003 Cr-Commit-Position: refs/heads/master@{#31990}
-
adamk authored
R=rossberg@chromium.org BUG=chromium:554865 LOG=n Review URL: https://codereview.chromium.org/1442653004 Cr-Commit-Position: refs/heads/master@{#31989}
-
mtrofin authored
We push the context and the js function onto the stack as part of the frame construction. The register allocator is presented with virtual registers for the above as defined from their corresponding registers. It then goes on to spilling them somewhere else on the stack. This means each function spends two redundant spills and two unnecessary stack slots. This change addresses this issue. We present these parameters (context and function) to the register allocator as an UnallocatedOperand having a "secondary storage". The secondary storage is then associated to the live range as its spill operand. We capture the definition of the live range so that we can then commit the spill (in this case, eliminate) through a variation of the mechanics of the CommitAssignment phase. The register allocator validator also needed update to understand UnallocatedOperands with a secondary storage. The change renames the SpillAtDefinitionList and related APIs to better capture their intent - the old names suggested spills happened upon calling. In reality, potential spill locations were thus recorded, and later committed (or not, in certain cases) after register allocation. BUG= v8:4548 LOG=n Review URL: https://codereview.chromium.org/1426943010 Cr-Commit-Position: refs/heads/master@{#31988}
-
danno authored
* Limit triggering of tail calls to explicit use of a new inline runtime function %_TailCall. %_TailCall works just like %_Call except for using tail-calling mechanics (currently only in TF). * Remove hack that recognized some specific usages of %_Call and converted them into tail calls. * Support tail calls for all calls where the number of callee stack parameters is less than or equal to the number of caller stack parameters. * Use the gap resolver to swizzle parameters and registers to tail calls. BUG=v8:4076 LOG=n Review URL: https://codereview.chromium.org/1439613003 Cr-Commit-Position: refs/heads/master@{#31987}
-
mstarzinger authored
With do-expressions any expression used as a case label can turn into an OSR entry-point. This means the value being switched over is renamed to an OSR value and needs to be reloaded from the environment at each case. R=rossberg@chromium.org TEST=mjsunit/regress/regress-osr-in-case-label Review URL: https://codereview.chromium.org/1438123007 Cr-Commit-Position: refs/heads/master@{#31986}
-
hablich authored
TBR=machenbach@chromium.org NOTRY=true Review URL: https://codereview.chromium.org/1443673002 Cr-Commit-Position: refs/heads/master@{#31985}
-
mythria authored
Adds an optimization to omit generating Ldar/Star if the same register is loaded or stored from the accumulator in the earlier instruction. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1435283002 Cr-Commit-Position: refs/heads/master@{#31984}
-
cbruni authored
LOG=N BUG=v8:1543 Review URL: https://codereview.chromium.org/1417063011 Cr-Commit-Position: refs/heads/master@{#31983}
-
mstarzinger authored
This makes sure that inlining a constructor call to a function which cannot be used as a constructor (e.g. strong mode function) still does throw correctly when the implicit receiver is created. R=bmeurer@chromium.org TEST=mjsunit/regress/regress-inline-strong-as-construct BUG=v8:4544 LOG=n Review URL: https://codereview.chromium.org/1447443002 Cr-Commit-Position: refs/heads/master@{#31982}
-
rossberg authored
This reverts commit b7db5cd9 (https://codereview.chromium.org/1324353002/). Our internal dashboard shows that this patch has introduced massive (3x) performance regressions for string ops. This is probably due to it repeatedly invoking %_StringCharCodeAt in a loop, which is far from cheap (has to dispatch on one of our 30+ string representations each time). TBR=dehrenberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1439083003 Cr-Commit-Position: refs/heads/master@{#31981}
-
ishell authored
1) Body descriptors moved to their own header files. 2) Missing body descriptors added. 3) Template versions of HeapObject::Iterate*() methods added. 4) Body descriptors support new kind of queries: IsValidSlot(offset) which can be used for invalid slots filtering. This is a first step towards virtual and static visitors unification and support in-object properties in built-in (sub-)classes. Review URL: https://codereview.chromium.org/1440243002 Cr-Commit-Position: refs/heads/master@{#31980}
-
bmeurer authored
The JSCallReducer runs together with inlining and tries to strength reduce JSCallFunction nodes; currently it can fold Function.prototype.call and Function.prototype.apply (with arguments), and make it possible to inline across them. In the case of Function.prototype.apply with arguments we still have to leave the JSCreateArguments node in the graph because there might be other (frame state) uses. Once escape analysis is ready, it will take care of removing these nodes and adding appropriate transitions for the deoptimizer. R=jarin@chromium.org BUG=v8:4551 LOG=n Review URL: https://codereview.chromium.org/1445513002 Cr-Commit-Position: refs/heads/master@{#31979}
-
mstarzinger authored
This aligns the naming of "new target" with the spec text throughout TurboFan and the stack frame walker. The goal is to avoid unnecessary confusion for people familiar with the spec. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1442643002 Cr-Commit-Position: refs/heads/master@{#31978}
-
yangguo authored
R=verwaest@chromium.org BUG=chromium:554946 LOG=N Review URL: https://codereview.chromium.org/1442963002 Cr-Commit-Position: refs/heads/master@{#31977}
-
jarin authored
This is necessary to allow more optimizations to take place between the representation inference and change lowering. Perhaps we want to rename SimplifiedLowering -> RepresentationInference and ChangeLowering -> SimplifiedLowering. Review URL: https://codereview.chromium.org/1439473003 Cr-Commit-Position: refs/heads/master@{#31976}
-
bmeurer authored
Continue with the other candidates in case of a failed attempt to inline a certain candidate. TBR=mstarzinger@chromium.org BUG=v8:4493 LOG=n Review URL: https://codereview.chromium.org/1435373002 Cr-Commit-Position: refs/heads/master@{#31975}
-
v8-autoroll authored
Rolling v8/buildtools to 3ba3ca22ec610fe95683f6bfdeea9d90c768abd7 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1436393003 Cr-Commit-Position: refs/heads/master@{#31974}
-
akos.palfi authored
Port 857cd4c1 BUG= Review URL: https://codereview.chromium.org/1439053003 Cr-Commit-Position: refs/heads/master@{#31973}
-
- 12 Nov, 2015 18 commits
-
-
neis authored
BUG= Review URL: https://codereview.chromium.org/1427743011 Cr-Commit-Position: refs/heads/master@{#31972}
-
caitpotter88 authored
BUG=v8:4360 LOG=N R=littledan@chromium.org Review URL: https://codereview.chromium.org/1440593003 Cr-Commit-Position: refs/heads/master@{#31971}
-
mlippautz authored
R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1438313002 Cr-Commit-Position: refs/heads/master@{#31970}
-
ahaas authored
The least significant bit of the input value may affect the result of the conversion through rounding. We OR the least significant with the second least significant bit to preserve it over the SHR instruction. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1435203003 Cr-Commit-Position: refs/heads/master@{#31969}
-
yangguo authored
BUG=chromium:554946 LOG=y R=jkummerow@chromium.org, jochen@chromium.org Review URL: https://codereview.chromium.org/1435083003 Cr-Commit-Position: refs/heads/master@{#31968}
-
mbrandy authored
This test, as written, is invalid on platforms which use function descriptors. See https://codereview.chromium.org/1377423002/ for background. R=mstarzinger@chromium.org, titzer@chromium.org, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1438803002 Cr-Commit-Position: refs/heads/master@{#31967}
-
adamk authored
Because the Scope will be optimized away by the call to FinalizeBlockScope in the case where there are no lexical declarations in the block, this should have no effect on anything downstream from the Parser, and simply removes duplicate parsing code. Due to the change from ParseStatement to ParseStatementListItem, this will result in slightly different error messages for lexical declarations in sloppy mode (until those are shipped). R=littledan@chromium.org, rossberg@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1433743005 Cr-Commit-Position: refs/heads/master@{#31966}
-
adamk authored
BUG=v8:2160 LOG=y Review URL: https://codereview.chromium.org/1438753002 Cr-Commit-Position: refs/heads/master@{#31965}
-
evan.lucas authored
Instead of basing matches off of whitespace, walk the inheritance chain and include any classes that inherit from Object. R=machenbach@chromium.org,jkummerow@chromium.org NOTRY=true Review URL: https://codereview.chromium.org/1435643002 Cr-Commit-Position: refs/heads/master@{#31964}
-
mbrandy authored
Remove hard-coded assumption of large object size threshold. This test fails on PPC in version 4.7 where the threshold is derived directly from the allocator's pagesize. R=hpayer@chromium.org, mstarzinger@chromium.org, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1440723002 Cr-Commit-Position: refs/heads/master@{#31963}
-
jkummerow authored
BUG=v8:1543 LOG=n Review URL: https://codereview.chromium.org/1438233002 Cr-Commit-Position: refs/heads/master@{#31962}
-
fedor authored
BUG= R=machenbach Review URL: https://codereview.chromium.org/1439763002 Cr-Commit-Position: refs/heads/master@{#31961}
-
bmeurer authored
Now JSIntrinsicLowering can also lower %_IsSpecObject intrinsics to a diamond. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1436943005 Cr-Commit-Position: refs/heads/master@{#31960}
-
ishell authored
This CL fixes several sources of non-predictability by making Platform::MonotonicallyIncreasingTime() the only bottleneck for all time-querying functions and providing PredictablePlatform implementation. Review URL: https://codereview.chromium.org/1415383004 Cr-Commit-Position: refs/heads/master@{#31959}
-
bmeurer authored
Only inline one candidate per iteration to make sure we really inline the stuff that is called most often. R=mstarzinger@chromium.org BUG=v8:4493, v8:4544 LOG=n Review URL: https://codereview.chromium.org/1439773003 Cr-Commit-Position: refs/heads/master@{#31958}
-
bmeurer authored
This adds initial support for fast inline allocations of JSObject instances. It currently has exactly the same limitations as Crankshaft. R=mstarzinger@chromium.org BUG=v8:4544 LOG=n Review URL: https://codereview.chromium.org/1441573004 Cr-Commit-Position: refs/heads/master@{#31957}
-
yangguo authored
R=jkummerow@chromium.org BUG=chromium:523919 LOG=N Review URL: https://codereview.chromium.org/1440983002 Cr-Commit-Position: refs/heads/master@{#31956}
-
mstarzinger authored
This passes both, the actual constructor and the original constructor, to nodes having the {JSCreate} operator. This is required for allocating properly subclassed implicit receiver objects. R=verwaest@chromium.org BUG=v8:4544 LOG=n Review URL: https://codereview.chromium.org/1434873004 Cr-Commit-Position: refs/heads/master@{#31955}
-