- 28 Oct, 2016 2 commits
-
-
ishell authored
... because the latter unlike the former records meaningful position. BUG= Review-Url: https://codereview.chromium.org/2456193005 Cr-Commit-Position: refs/heads/master@{#40640}
-
jgruber authored
BUG=v8:5339 Review-Url: https://codereview.chromium.org/2452923002 Cr-Commit-Position: refs/heads/master@{#40634}
-
- 27 Oct, 2016 1 commit
-
-
leszeks authored
Reuses (and renames) the SFI "mark for optimization" flag to also permit marking for baseline recompilation. The flag now represents a "tier up" request, and CompileLazy can get baseline code as well as optimized code. BUG=v8:5512 Review-Url: https://codereview.chromium.org/2448933002 Cr-Commit-Position: refs/heads/master@{#40612}
-
- 26 Oct, 2016 2 commits
-
-
neis authored
R=adamk@chromium.org BUG= Review-Url: https://codereview.chromium.org/2452543003 Cr-Commit-Position: refs/heads/master@{#40584}
-
bmeurer authored
For Math builtins that likely yield double results, i.e. Math.sin, Math.cos and friends, don't bother trying to canonicalize the result to Smi. The rationale behind this is that other parts of V8 use the HeapNumber representation as a hint to assume that certain values should be represented as double (i.e. for the array elements kind and for double field tracking). This way the chance that we make the ideal decision early on is better. For Math.abs we establish the contract that if the input value is a Smi, then we try hard to return a Smi (doesn't work for minimal Smi value), otherwise we preserve the HeapNumberness of the input. Same for the generic Add, Subtract, Multiply, etc. code stubs. R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2451973003 Cr-Commit-Position: refs/heads/master@{#40573}
-
- 25 Oct, 2016 2 commits
-
-
cbruni authored
Object.create(null) is most likely to be used for dictionary-like objects. Hence it would be beneficial to directly create a slow-mode object and avoid additional overhead later-on. BUG= Review-Url: https://codereview.chromium.org/2430273007 Cr-Commit-Position: refs/heads/master@{#40551}
-
jgruber authored
BUG=v8:5339 Review-Url: https://codereview.chromium.org/2442333002 Cr-Commit-Position: refs/heads/master@{#40545}
-
- 24 Oct, 2016 4 commits
-
-
bjaideep authored
Swaping the order when loading surrogate pairs on big endian platform. This fixes testcase string-iterator.js on big endian. BUG= R=bmeurer@chromium.org, mstarzinger@chromium.org, jkummerow@chromium.org Review-Url: https://codereview.chromium.org/2431223010 Cr-Commit-Position: refs/heads/master@{#40535}
-
jgruber authored
This results in a speedup of around 2x. RegExpExec is also ported in this CL. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2441993002 Cr-Commit-Position: refs/heads/master@{#40532}
-
jgruber authored
This will have additional use sites in TurboFan soon once RegExpExec is ported. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2440893003 Cr-Commit-Position: refs/heads/master@{#40529}
-
zhengxing.li authored
port 4a31323e (r40506) original commit message: The current method of marking functions for optimization, which replaces the JSFunction's code object with one that triggers optimization, would never allow unnamed functions to be optimized. This is an issue for a style of programming which heavily relies on passing around closures. This patch sets a bit on the SharedFunctionInfo when a JSFunction is marked. When another JSFunction referring to the same SharedFunctionInfo is lazily compiled, it immediately triggers a non-concurrent optimize. BUG= Review-Url: https://codereview.chromium.org/2439393002 Cr-Commit-Position: refs/heads/master@{#40520}
-
- 21 Oct, 2016 7 commits
-
-
jgruber authored
Up until now, the TFJ macro would take 'argc + 1' for the implicitly passed receiver. Decrease the cognitive load by making it take the explicit argc. BUG= Review-Url: https://chromiumcodereview.appspot.com/2439013003 Cr-Commit-Position: refs/heads/master@{#40509}
-
leszeks authored
The current method of marking functions for optimization, which replaces the JSFunction's code object with one that triggers optimization, would never allow unnamed functions to be optimized. This is an issue for a style of programming which heavily relies on passing around closures. This patch sets a bit on the SharedFunctionInfo when a JSFunction is marked. When another JSFunction referring to the same SharedFunctionInfo is lazily compiled, it immediately triggers a non-concurrent optimize. BUG=v8:5512 Review-Url: https://chromiumcodereview.appspot.com/2437043002 Cr-Commit-Position: refs/heads/master@{#40506}
-
jgruber authored
This adds a fast-path for calls to RegExp.prototype[@@replace] for cases in which the given regexp is unmodified and global, and the given replace argument is callable. The fast-path implementation itself is almost identical to the original JS implementation except that it currently does not reuse result_array. SunSpider/unpack-code relies heavily on this codepath. BUG=v8:5339 Review-Url: https://chromiumcodereview.appspot.com/2433923003 Cr-Commit-Position: refs/heads/master@{#40504}
-
jgruber authored
Add an IsCallableMap predicate to code-stub-assembler which tests whether the given map is callable, and adjust all use sites. BUG= Review-Url: https://chromiumcodereview.appspot.com/2435283002 Cr-Commit-Position: refs/heads/master@{#40502}
-
jgruber authored
These map checks were implemented for TF code already. This CL makes sure that parts implemented in C++ follow the same logic, which is: An object is an unmodified regexp if: 1) it's a receiver, 2) its map is the initial regexp map, 3) its prototype is a receiver, 4) and its prototype's map is the initial prototype's initial map. We can now be smarter in @@replace and @@split since checking maps (unlike the previous check of RegExp.prototype.exec) is not observable, so we can perform fast-path checks at a time of our choosing. BUG=v8:5339,v8:5434,v8:5123 Review-Url: https://chromiumcodereview.appspot.com/2434983002 Cr-Commit-Position: refs/heads/master@{#40501}
-
machenbach authored
Revert of [regexp] Use consistent map checks for fast paths (patchset #7 id:120001 of https://chromiumcodereview.appspot.com/2434983002/ ) Reason for revert: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10853 Original issue's description: > [regexp] Use consistent map checks for fast paths > > These map checks were implemented for TF code already. This CL makes > sure that parts implemented in C++ follow the same logic, which is: > > An object is an unmodified regexp if: > 1) it's a receiver, > 2) its map is the initial regexp map, > 3) its prototype is a receiver, > 4) and its prototype's map is the initial prototype's initial map. > > We can now be smarter in @@replace and @@split since checking maps > (unlike the previous check of RegExp.prototype.exec) is not observable, > so we can perform fast-path checks at a time of our choosing. > > BUG=v8:5339,v8:5434,v8:5123 TBR=yangguo@chromium.org,jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5339,v8:5434,v8:5123 Review-Url: https://chromiumcodereview.appspot.com/2438283002 Cr-Commit-Position: refs/heads/master@{#40499}
-
jgruber authored
These map checks were implemented for TF code already. This CL makes sure that parts implemented in C++ follow the same logic, which is: An object is an unmodified regexp if: 1) it's a receiver, 2) its map is the initial regexp map, 3) its prototype is a receiver, 4) and its prototype's map is the initial prototype's initial map. We can now be smarter in @@replace and @@split since checking maps (unlike the previous check of RegExp.prototype.exec) is not observable, so we can perform fast-path checks at a time of our choosing. BUG=v8:5339,v8:5434,v8:5123 Review-Url: https://chromiumcodereview.appspot.com/2434983002 Cr-Commit-Position: refs/heads/master@{#40495}
-
- 20 Oct, 2016 1 commit
-
-
ishell authored
This CL also introduces IsSetWord<T>(..) and IsSetWord32<T>(..) operations to ease checking if the bit field is set or not. BUG= Review-Url: https://chromiumcodereview.appspot.com/2436893003 Cr-Commit-Position: refs/heads/master@{#40466}
-
- 19 Oct, 2016 3 commits
-
-
ziyang authored
Port 77419488 Original commit message: This slot is completely unused and always undefined anyways, so there's no need to maintain the slot during object construction. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= Review-Url: https://chromiumcodereview.appspot.com/2429983002 Cr-Commit-Position: refs/heads/master@{#40441}
-
cbruni authored
BUG= Review-Url: https://chromiumcodereview.appspot.com/2385423005 Cr-Commit-Position: refs/heads/master@{#40429}
-
bmeurer authored
When the input to Number.parseInt is a HeapNumber in Signed32 range, we can just return the (truncated) input value (i.e. we need to map -0 to 0 due to the ToString conversion). R=jarin@chromium.org Review-Url: https://chromiumcodereview.appspot.com/2432923002 Cr-Commit-Position: refs/heads/master@{#40419}
-
- 18 Oct, 2016 8 commits
-
-
bmeurer authored
http://crrev.com/2424403002 contained a typo comparing the input map against the undefined constant rather than the HeapNumber map, which tanks the case where Number.parseInt is used instead of Math.floor. TBR=epertoso@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2425703007 Cr-Commit-Position: refs/heads/master@{#40409}
-
epertoso authored
BranchIf and helpers were introduced when exporting the schedule from the RawMachineAssembler was not ensuring that the CFG was well-form. These methods, that were used to introduce blocks to ensure edge-split form, are now unnecessary. BUG= Review-Url: https://codereview.chromium.org/2426923002 Cr-Commit-Position: refs/heads/master@{#40402}
-
bmeurer authored
R=epertoso@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2424403002 Cr-Commit-Position: refs/heads/master@{#40399}
-
zhengxing.li authored
port 77419488 (r40377) original commit message: This slot is completely unused and always undefined anyways, so there's no need to maintain the slot during object construction. BUG= Review-Url: https://codereview.chromium.org/2425183002 Cr-Commit-Position: refs/heads/master@{#40389}
-
jgruber authored
This CL adds two new fast-paths for RegExp.prototype.replace in the case that the regexp itself is an unmodified JSRegExp instance and the replace argument is callable. Such cases call directly into runtime. This could be improved even further by turning the relevant runtime functions into inline TurboFan. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2415663007 Cr-Commit-Position: refs/heads/master@{#40381}
-
danno authored
In the process: - Add ToString to the CodeStubAssembler and use it where appropriate - Add constant-folding versions of IntPtrAdd/IntPtrSub to simplify code in element offset computation, especially for strings. BUG=chromium:608675 LOG=N Review-Url: https://codereview.chromium.org/2407813002 Cr-Commit-Position: refs/heads/master@{#40379}
-
bmeurer authored
This slot is completely unused and always undefined anyways, so there's no need to maintain the slot during object construction. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2423323002 Cr-Commit-Position: refs/heads/master@{#40377}
-
caitp authored
Implements the variations of CreateArrayIterator() in TFJ builtins (ArrayPrototypeValues, ArrayPrototypeEntries and ArrayPrototypeKeys), and provides two new Object types with numerous maps which identify certain behaviours, which will be useful for inlining. Removes src/js/array-iterator.js entirely Also adds support for printing Symbol literals inserted by the Parser during desugaring when FLAG_print_builtin_ast is set to true. BUG=v8:5388 R=bmeurer@chromium.org, cbruni@chromium.org TBR=ulan@chromium.org Review-Url: https://codereview.chromium.org/2405253006 Cr-Commit-Position: refs/heads/master@{#40373}
-
- 17 Oct, 2016 3 commits
-
-
heimbuef authored
This adds more useful information to the v8-heap-stats tool. BUG=v8:5489 Review-Url: https://codereview.chromium.org/2394213003 Cr-Commit-Position: refs/heads/master@{#40361}
-
jkummerow authored
RIP, handwritten KeyedLoadICStub, handwritten KeyedLoadIC_Megamorphic, and hydrogenized KeyedLoadGeneric! Review-Url: https://codereview.chromium.org/2424433002 Cr-Commit-Position: refs/heads/master@{#40354}
-
jochen authored
R=machenbach@chromium.org,titzer@chromium.org,bmeurer@chromium.org,jgruber@chromium.org BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg,v8_mac_dbg;master.tryserver.chromium.android:android_arm64_dbg_recipe Review-Url: https://codereview.chromium.org/2416243002 Cr-Commit-Position: refs/heads/master@{#40350}
-
- 14 Oct, 2016 7 commits
-
-
jgruber authored
Let AdvanceStringIndex return the incremented index instead of the increment, and adjust all use sites. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2415383002 Cr-Commit-Position: refs/heads/master@{#40310}
-
jgruber authored
Now that all accesses to the last match info are in C++ and TF code, we can finally turn the last match info into a FixedArray. Similar to the ArrayList, it uses its first field to store its length and grows dynamically in amortized O(1) time. Unlike previously, this means that the last match info pointer stored on the context can actually change (in case the FixedArray needs to grow). BUG=v8:5339 Review-Url: https://codereview.chromium.org/2415103002 Cr-Commit-Position: refs/heads/master@{#40308}
-
bmeurer authored
These accessors also always call into C++ anyways, so there's no point in having the JavaScript wrappers. R=yangguo@chromium.org BUG=v8:5049, chromium:655963 Committed: https://crrev.com/ede69cfabd790fe9f171b5d1f426ea0fc55e3c98 Review-Url: https://codereview.chromium.org/2417183002 Cr-Original-Commit-Position: refs/heads/master@{#40298} Cr-Commit-Position: refs/heads/master@{#40306}
-
machenbach authored
Revert of [builtins] Also port the Object.prototype.__proto__ accessors to C++. (patchset #1 id:1 of https://codereview.chromium.org/2417183002/ ) Reason for revert: [Sheriff] Speculative revert for webkit tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10656 Was broken before, but this one test failure started with this CL: inspector/console/console-dir.htm All other errors stopped after another revert. See also: https://github.com/v8/v8/wiki/Blink-layout-tests Original issue's description: > [builtins] Also port the Object.prototype.__proto__ accessors to C++. > > These accessors also always call into C++ anyways, so there's no point > in having the JavaScript wrappers. > > R=yangguo@chromium.org > BUG=v8:5049 > > Committed: https://crrev.com/ede69cfabd790fe9f171b5d1f426ea0fc55e3c98 > Cr-Commit-Position: refs/heads/master@{#40298} TBR=yangguo@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5049 Review-Url: https://codereview.chromium.org/2415173003 Cr-Commit-Position: refs/heads/master@{#40303}
-
jgruber authored
'RETURN_RESULT(isolate, call, type)' is equivalent to 'return call' in all current use cases. BUG= Review-Url: https://codereview.chromium.org/2415993003 Cr-Commit-Position: refs/heads/master@{#40302}
-
neis authored
It's always JSFunction. R=bmeurer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2422573002 Cr-Commit-Position: refs/heads/master@{#40301}
-
bmeurer authored
These accessors also always call into C++ anyways, so there's no point in having the JavaScript wrappers. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2417183002 Cr-Commit-Position: refs/heads/master@{#40298}
-