- 16 Sep, 2015 3 commits
-
-
bmeurer authored
Implement the String constructor completely as native builtin, avoiding the need to do gymnastics in JavaScript builtin to properly detect the no argument case (which is different from the undefined argument case) and also allowing to just tailcall through to ToString or SymbolDescriptiveString for the common case. Also the JavaScript builtin was misleading since the case for construct call was unused, but could be triggered in a wrong way once we support tail calls from constructor functions. This refactoring allows us to properly implement subclassing for String builtins, once we have the correct initial_map on derived classes (it's merely a matter of using NewTarget instead of the target register now). This introduces a new %SymbolDescriptiveString runtime entry, which is also used by Symbol.toString() now. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1344893002 Cr-Commit-Position: refs/heads/master@{#30759}
-
mvstanton authored
BUG=v8:4423 LOG=N Review URL: https://codereview.chromium.org/1342013003 Cr-Commit-Position: refs/heads/master@{#30758}
-
jochen authored
R=hpayer@chromium.org BUG= NOTRY=true Review URL: https://codereview.chromium.org/1350633003 Cr-Commit-Position: refs/heads/master@{#30757}
-
- 15 Sep, 2015 34 commits
-
-
paul.lind authored
Same as https://codereview.chromium.org/1340303002/ BUG= Review URL: https://codereview.chromium.org/1339763005 Cr-Commit-Position: refs/heads/master@{#30756}
-
binji authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/1318713007 Cr-Commit-Position: refs/heads/master@{#30755}
-
adamk authored
Mark ArrayLiterals utilizing the spread operator as non-simple. This causes them to return false for IsCompileTimeValue, and thus causes spread to work as expected in nested literals. BUG=v8:4417 LOG=y Review URL: https://codereview.chromium.org/1336123002 Cr-Commit-Position: refs/heads/master@{#30754}
-
jarin authored
Review URL: https://codereview.chromium.org/1340303002 Cr-Commit-Position: refs/heads/master@{#30753}
-
mlippautz authored
Revert of [heap] Concurrency support for heap book-keeping info (patchset #4 id:60001 of https://codereview.chromium.org/1340923004/ ) Reason for revert: crashing: http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20debug%20-%203/builds/4716 Original issue's description: > [heap] Concurrency support for heap book-keeping info. > > Adds concurrency support for: > - MemoryChunk: Fragmentation counters > - MemoryChunk: High-water mark > - MemoryAllocator: Lowest and highest ever allocated addresses, size, and > capacity > > R=hpayer@chromium.org > BUG=chromium:524425 > LOG=N > > Committed: https://crrev.com/63190721cda4966e01d71e92a730ce48ea789fbc > Cr-Commit-Position: refs/heads/master@{#30749} TBR=hpayer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:524425 Review URL: https://codereview.chromium.org/1340323002 Cr-Commit-Position: refs/heads/master@{#30752}
-
mlippautz authored
Loads get an acquire, store/cas a release. Increment gets a full barrier. R=hpayer@chromium.org BUG= Review URL: https://codereview.chromium.org/1343883004 Cr-Commit-Position: refs/heads/master@{#30751}
-
bmeurer authored
The ES6 specification says that "Built-in functions that are ECMAScript function objects must be strict mode functions", which in particular means that you can never test for them using the "caller" field of a sloppy mode function. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg R=mstarzinger@chromium.org BUG=v8:105 LOG=n Review URL: https://codereview.chromium.org/1347663002 Cr-Commit-Position: refs/heads/master@{#30750}
-
mlippautz authored
Adds concurrency support for: - MemoryChunk: Fragmentation counters - MemoryChunk: High-water mark - MemoryAllocator: Lowest and highest ever allocated addresses, size, and capacity R=hpayer@chromium.org BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1340923004 Cr-Commit-Position: refs/heads/master@{#30749}
-
mlippautz authored
Previously the mutex only guarded free_list_. The extension covers also allocation_list_. BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1341293002 Cr-Commit-Position: refs/heads/master@{#30748}
-
bmeurer authored
Move the implementation of the Abstract Equality Comparison to the runtime and thereby remove the EQUALS dispatcher builtin. Also remove the various runtime entry points that were only used to support the EQUALS builtin. Now the Abstract Equality Comparison is also using the correct ToPrimitive implementation, which properly supports @@toPrimitive. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg R=mstarzinger@chromium.org BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1337993005 Cr-Commit-Position: refs/heads/master@{#30747}
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1343043002 Cr-Commit-Position: refs/heads/master@{#30746}
-
chunyang.dai authored
port e7fb2339 (r30710). original commit message: Adds support for JS calls to the interpreter. In order to support calls from the interpreter, the PushArgsAndCall builtin is added which pushes a sequence of arguments onto the stack and calls builtin::Call. Adds the Call bytecode. BUG= Review URL: https://codereview.chromium.org/1334153004 Cr-Commit-Position: refs/heads/master@{#30745}
-
chunyang.dai authored
port eadfd666 (r30706). original commit message: The String constructor was somewhat complex with a lot of micro optimizations that are not relevant or even misguided. It would be really hard to port that code to ES6, which requires String to be subclassable. So as a first step we reduced the necessary complexity to the bare minimum (also removing the last user of the fairly complex MacroAssembler::LookupNumberStringCache method). This also removes the counters for the String constructor, which were not properly exposed anymore (and not kept in sync with inlined versions of the String constructor anyway). BUG= Review URL: https://codereview.chromium.org/1336133003 Cr-Commit-Position: refs/heads/master@{#30744}
-
chunyang.dai authored
port 9fc4fc14 (r30695). BUG= Review URL: https://codereview.chromium.org/1339293002 Cr-Commit-Position: refs/heads/master@{#30743}
-
mlippautz authored
R=hpayer@chromium.org BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1340253004 Cr-Commit-Position: refs/heads/master@{#30742}
-
chunyang.dai authored
port 39604dda (r30693). original commit message: Just use a %ThrowStackOverflow runtime function instead, which does the trick, especially since the Isolate already has a preallocated StackOverflow error for that. BUG= Review URL: https://codereview.chromium.org/1344793002 Cr-Commit-Position: refs/heads/master@{#30741}
-
chunyang.dai authored
port 622fa0ea (r30691). original commit message: Currently we do this dance between the CallConstructStub, the CALL_* builtins and the %GetConstructorDelegate, %GetProxyTrap, and %Apply runtime functions for every [[Construct]] operation on non-function callables. This is complexity is unnecessary, and can be simplified to work without any JS builtin. This will also make it a lot easier to implement ES6 compliant [[Construct]] for proxies. Also sanitize the invariant for CallConstructStub, which up until now always restored the context itself, but that force us to always create another copy of all arguments in case of proxies and other callables, so we can relax that constraint by making the caller restore the context (this only affects fullcodegen, since the optimizing compilers already properly restore the context anyway). BUG= Review URL: https://codereview.chromium.org/1341233002 Cr-Commit-Position: refs/heads/master@{#30740}
-
chunyang.dai authored
X87: Vector ICs: The Oracle needs to report feedback for the object literals and the count operation. port 752b0308 (r30686). original commit message: The refactoring is because it's awkward and error-prone to deterimine which IC slot an ObjectLiteralProperty uses for feedback. The fix is for each one to know it's own slot. In the numbering pass, we allocate slots for the ObjectLiteral, then hand out those slots into the properties. It adds one word to the ObjectLiteralProperty expression - I'm investigating if thats a problem. This changes makes compiling the object literal cleaner across the three compilers. Also, the slot allocation logic in ObjectLiteral::ComputeFeedbackRequirements() was refactoring to mimic the style in full-codegen. This is useful since it must remain in sync with FullCodegen::VisitObjectLiteral(). BUG= Review URL: https://codereview.chromium.org/1341223002 Cr-Commit-Position: refs/heads/master@{#30739}
-
mstarzinger authored
The assumption that every function body produces a value does not hold for functions that e.g. unconditionally throw or endlessly loop. This fixes the inlining logic to handle such cases. R=bmeurer@chromium.org TEST=mjsunit/regress/regress-crbug-530598 BUG=chromium:530598 LOG=n Review URL: https://codereview.chromium.org/1333193005 Cr-Commit-Position: refs/heads/master@{#30738}
-
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}
-
cbruni authored
Returning a result array with holey elements kind in where we actually have a packed kind causes performance regressions. LOG=N BUG=chromium:531357 Review URL: https://codereview.chromium.org/1340033002 Cr-Commit-Position: refs/heads/master@{#30736}
-
mstarzinger authored
This models the materialization of arguments objects in the prologue within the IR graph. It will in turn allow us to optimize access to these objects and also correctly handle them with inlining. R=bmeurer@chromium.org,mvstanton@chromium.org TEST=cctest/test-run-jsobjects/Arguments* Review URL: https://codereview.chromium.org/1344553003 Cr-Commit-Position: refs/heads/master@{#30735}
-
machenbach authored
BUG=chromium:515782 LOG=n Review URL: https://codereview.chromium.org/1333133003 Cr-Commit-Position: refs/heads/master@{#30734}
-
brettw authored
The conditionals were added to facilitate a two-sided build GN config update where the default optimization config was renamed. This is complete so the transitional code can be removed. Review URL: https://codereview.chromium.org/1338163003 Cr-Commit-Position: refs/heads/master@{#30733}
-
oth authored
Reported by Bruce Dawson. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1346453002 Cr-Commit-Position: refs/heads/master@{#30732}
-
machenbach authored
NOTRY=true Review URL: https://codereview.chromium.org/1341213002 Cr-Commit-Position: refs/heads/master@{#30731}
-
hablich authored
I noticed after reading a few GitHub comments that the information about contributing to V8 is hard to find. I think it makes sense to add this information to the README. NOTRY=true R=jochen@chromium.org, seththompson@chromium.org LOG=N Review URL: https://codereview.chromium.org/1342803004 Cr-Commit-Position: refs/heads/master@{#30730}
-
Ilija.Pavlovic authored
Remove incorrect usage of callee-saved FPU regs (f20 and above). Also remove unnecessary push/pop which were occasionally unpaired, and caused crash. TEST=cctest/test-assembler-mips[64] BUG= Review URL: https://codereview.chromium.org/1338713004 Cr-Commit-Position: refs/heads/master@{#30729}
-
neis authored
R=jarin BUG= Review URL: https://codereview.chromium.org/1340023003 Cr-Commit-Position: refs/heads/master@{#30728}
-
machenbach authored
Revert of [crankshaft] Re-add fast-case for string add left/right. (patchset #1 id:1 of https://codereview.chromium.org/1339053002/ ) Reason for revert: [Sheriff] Fails mozilla with deadcode: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20deadcode/builds/5357 Original issue's description: > [crankshaft] Re-add fast-case for string add left/right. > > Now the StringAddStub can optionally convert it's parameters to strings > (following the rules for the addition operator). This could be further > optimized once we have a ToPrimitiveStub, but it should be sufficient > for the moment. > > Also removed the unused Strength parameter to the HStringAdd operator, > because string addition does not depend on language mode. > > CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_win_nosnap_shared_rel,v8_linux_nosnap_dbg > R=mstarzinger@chromium.org > BUG=v8:4307 > LOG=n > > Committed: https://crrev.com/d261849e53fbf8c36efae42d478271f87acff70f > Cr-Commit-Position: refs/heads/master@{#30726} TBR=mstarzinger@chromium.org,jarin@chromium.org,bmeurer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4307 Review URL: https://codereview.chromium.org/1347473003 Cr-Commit-Position: refs/heads/master@{#30727}
-
bmeurer authored
Now the StringAddStub can optionally convert it's parameters to strings (following the rules for the addition operator). This could be further optimized once we have a ToPrimitiveStub, but it should be sufficient for the moment. Also removed the unused Strength parameter to the HStringAdd operator, because string addition does not depend on language mode. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_win_nosnap_shared_rel,v8_linux_nosnap_dbg R=mstarzinger@chromium.org BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1339053002 Cr-Commit-Position: refs/heads/master@{#30726}
-
jarin authored
Review URL: https://codereview.chromium.org/1333353005 Cr-Commit-Position: refs/heads/master@{#30725}
-
v8-autoroll authored
Rolling v8/buildtools to f7310ee61725e68b1c8921e381830362cf4f0999 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1342063002 Cr-Commit-Position: refs/heads/master@{#30724}
-
alph authored
Filtering out functions does not allow sample processor to figure out if a sample hit a non-frame region of a function. The filtering should be done in the frontend. BUG=chromium:529931 LOG=N Review URL: https://codereview.chromium.org/1337743002 Cr-Commit-Position: refs/heads/master@{#30723}
-
- 14 Sep, 2015 3 commits
-
-
mbrandy authored
Port eadfd666 Original commit message: The String constructor was somewhat complex with a lot of micro optimizations that are not relevant or even misguided. It would be really hard to port that code to ES6, which requires String to be subclassable. So as a first step we reduced the necessary complexity to the bare minimum (also removing the last user of the fairly complex MacroAssembler::LookupNumberStringCache method). This also removes the counters for the String constructor, which were not properly exposed anymore (and not kept in sync with inlined versions of the String constructor anyway). R=bmeurer@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/1339143002 Cr-Commit-Position: refs/heads/master@{#30722}
-
mbrandy authored
Port e7fb2339 Original commit message: Adds support for JS calls to the interpreter. In order to support calls from the interpreter, the PushArgsAndCall builtin is added which pushes a sequence of arguments onto the stack and calls builtin::Call. Adds the Call bytecode. R=rmcilroy@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1345543002 Cr-Commit-Position: refs/heads/master@{#30721}
-
gdeepti authored
Enhance the perf runner to run with the profiler and print the summary for each d8 run. This automates running the profiler with multiple benchmarks. BUG=None LOG=N TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/1327033003 Cr-Commit-Position: refs/heads/master@{#30720}
-