- 21 Jul, 2016 2 commits
-
-
ishell authored
BUG=chromium:618701 Review-Url: https://codereview.chromium.org/2167493003 Cr-Commit-Position: refs/heads/master@{#37946}
-
cbruni authored
Use the ForInFilterStub directly. Hence we will only jump to the runtime for special receivers (instance_type <= LAST_SPECIAL_RECEIVER_TYPE) and for converting element indices which are not in the string cache. BUG= Review-Url: https://codereview.chromium.org/2151773002 Cr-Commit-Position: refs/heads/master@{#37934}
-
- 20 Jul, 2016 1 commit
-
-
oth authored
LOG=N BUG= Review-Url: https://codereview.chromium.org/2157363003 Cr-Commit-Position: refs/heads/master@{#37886}
-
- 19 Jul, 2016 2 commits
-
-
oth authored
Copies the behaviour of FullCode in attempting to get the state for ForInPrepare inline and falling back to the runtime if necessary. BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/2155153002 Cr-Commit-Position: refs/heads/master@{#37874}
-
bmeurer authored
Introduce a proper CodeStubAssembler::BranchIfToBooleanIsTrue helper method, that branches to if_true/if_false labels depending on whether the value that is passed would yield true or false when fed to ToBoolean. Use this helper to implement the bytecode handlers w/o having to materialize the temporary booleans and essentially branching twice. The CodeStubAssembler::BranchIfToBooleanIsTrue helper favors the most likely case of a Boolean constant now. Also migrate the ToBooleanStub to a ToBoolean TurboFan builtin, that also uses the helper method under the hood. Remove the now obsolete Oddball::to_boolean field. R=hpayer@chromium.org, rmcilroy@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/2151163002 Cr-Commit-Position: refs/heads/master@{#37849}
-
- 15 Jul, 2016 2 commits
-
-
jkummerow authored
No compiled handlers required! Instead, the type feedback vector contains a Smi encoding the field index. Review-Url: https://codereview.chromium.org/2133233002 Cr-Commit-Position: refs/heads/master@{#37803}
-
ishell authored
Revert of [ic] [stubs] Don't use Code::flags in megamorphic stub cache hash computations. (patchset #2 id:20001 of https://codereview.chromium.org/2147433002/ ) Reason for revert: Unfortunately, the performance issues are still there on Android. Original issue's description: > [ic] [stubs] Don't use Code::flags in megamorphic stub cache hash computations. > > This should avoid weird performance issues when changing layout of Code::flags field. > > BUG=chromium:618701 > > Committed: https://crrev.com/aa4140b1ccc114b82700471513c715f68b7c5dac > Cr-Commit-Position: refs/heads/master@{#37755} TBR=jkummerow@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:618701 Review-Url: https://codereview.chromium.org/2147213004 Cr-Commit-Position: refs/heads/master@{#37801}
-
- 14 Jul, 2016 2 commits
-
-
mvstanton authored
BUG= Review-Url: https://codereview.chromium.org/2141953002 Cr-Commit-Position: refs/heads/master@{#37764}
-
ishell authored
This should avoid weird performance issues when changing layout of Code::flags field. BUG=chromium:618701 Review-Url: https://codereview.chromium.org/2147433002 Cr-Commit-Position: refs/heads/master@{#37755}
-
- 13 Jul, 2016 1 commit
-
-
ishell authored
After this CL we can avoid using Code::flags in hash computations for megamorphic stub caches and therefore the unused ICState field can be finally removed from flags. BUG=chromium:618701 Review-Url: https://codereview.chromium.org/2123983004 Cr-Commit-Position: refs/heads/master@{#37708}
-
- 11 Jul, 2016 2 commits
-
-
rmcilroy authored
BUG=v8:4280 Review-Url: https://codereview.chromium.org/2128233002 Cr-Commit-Position: refs/heads/master@{#37637}
-
bmeurer authored
Consume Smi/Signed32 feedback for division and modulus and introduce appropriate checked operators. This is especially important for modulus where the Float64Mod operator is significantly slower than Int32Mod on most platforms. For division it's mostly important to propagate integerness, i.e. to avoid follow-up conversions between float and int32. Drive-by-fix: Use Int32Mod for the ModulusStub (and the bytecode handler) when the inputs are both Smi. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2138633002 Cr-Commit-Position: refs/heads/master@{#37621}
-
- 05 Jul, 2016 4 commits
-
-
verwaest authored
BUG=chromium:621147 Review-Url: https://codereview.chromium.org/2122943002 Cr-Commit-Position: refs/heads/master@{#37535}
-
bmeurer authored
This drops the %_ValueOf intrinsic, but keeps the runtime entry %ValueOf for now, by either migrating the functionality (mostly Debug mirror or toString/valueOf methods) to C++ or TurboFan builtins, or switching to the %ValueOf runtime call when it's not performance critical anyways. The %_ValueOf intrinsic was one of the last blockers for fixing the unsound machine operator typing in TurboFan. R=yangguo@chromium.org BUG=v8:5049 Committed: https://crrev.com/293bd7882987f00e465710ce468bfb1eaa7d3fa2 Review-Url: https://codereview.chromium.org/2126453002 Cr-Original-Commit-Position: refs/heads/master@{#37512} Cr-Commit-Position: refs/heads/master@{#37519}
-
machenbach authored
Revert of [intrinsic] Drop the %_ValueOf intrinsic. (patchset #2 id:20001 of https://codereview.chromium.org/2126453002/ ) Reason for revert: [Sheriff] Breaks without i18n: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20noi18n%20-%20debug/builds/8466 Original issue's description: > [intrinsic] Drop the %_ValueOf intrinsic. > > This drops the %_ValueOf intrinsic, but keeps the runtime entry > %ValueOf for now, by either migrating the functionality (mostly > Debug mirror or toString/valueOf methods) to C++ or TurboFan > builtins, or switching to the %ValueOf runtime call when it's > not performance critical anyways. > > The %_ValueOf intrinsic was one of the last blockers for fixing > the unsound machine operator typing in TurboFan. > > R=yangguo@chromium.org > BUG=v8:5049 > > Committed: https://crrev.com/293bd7882987f00e465710ce468bfb1eaa7d3fa2 > Cr-Commit-Position: refs/heads/master@{#37512} 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/2117273002 Cr-Commit-Position: refs/heads/master@{#37514}
-
bmeurer authored
This drops the %_ValueOf intrinsic, but keeps the runtime entry %ValueOf for now, by either migrating the functionality (mostly Debug mirror or toString/valueOf methods) to C++ or TurboFan builtins, or switching to the %ValueOf runtime call when it's not performance critical anyways. The %_ValueOf intrinsic was one of the last blockers for fixing the unsound machine operator typing in TurboFan. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2126453002 Cr-Commit-Position: refs/heads/master@{#37512}
-
- 30 Jun, 2016 1 commit
-
-
ishell authored
Currently only property queries are supported. This CL also factores out prototype chain iteration logic. GetPropertyStub is not used yet. BUG=v8:4911 LOG=Y Review-Url: https://codereview.chromium.org/2087863002 Cr-Commit-Position: refs/heads/master@{#37455}
-
- 27 Jun, 2016 1 commit
-
-
ishell authored
This is a building block for GetPropertyStub. It supports querying fast, slow and global objects without native accessors and interceptors. BUG=v8:4911 LOG=Y Review-Url: https://codereview.chromium.org/2079823002 Cr-Commit-Position: refs/heads/master@{#37291}
-
- 24 Jun, 2016 2 commits
-
-
jyan authored
The hash field is supposed to be 4 bytes even in 64-bit. But the default parameter of StoreObjectFieldNoWriteBarrier using kTagged will generate 64-bit store. Fix by Replacing kTagged with kWord32. This causes ~200 test failures on big-endian, because hash field offset in BE is 12 instead of 8 in LE platforms. R=bmeurer@chromium.org, epertoso@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com BUG= Review-Url: https://codereview.chromium.org/2095003003 Cr-Commit-Position: refs/heads/master@{#37256}
-
ishell authored
This simplifies the calling convention of LoadGlobalIC. Currently we do a linear search to get the name but I'll address this in a follow-up CL. BUG=chromium:576312 TBR=rossberg@chromium.org Review-Url: https://codereview.chromium.org/2084913006 Cr-Commit-Position: refs/heads/master@{#37253}
-
- 15 Jun, 2016 1 commit
-
-
ishell authored
The new approach is that instead of compiling custom handlers for every global object's PropertyCell it uses single dispatcher that caches PropertyCells in respective slot of the feedback vector. Currently the new LoadGlobalIC machinery is disabled. This CL also removes unused LoadGlobalViaContext* stuff. BUG=chromium:576312 LOG=Y Review-Url: https://codereview.chromium.org/2065113002 Cr-Commit-Position: refs/heads/master@{#37002}
-
- 09 Jun, 2016 2 commits
-
-
danno authored
Review-Url: https://codereview.chromium.org/2056503003 Cr-Commit-Position: refs/heads/master@{#36842}
-
bmeurer authored
When walking up the prototype chain during OrdinaryHasInstance, we first check if the current prototype equals the expected one, and only afterwards check the current prototype against null. That's obviously wrong if we check something like Proxy, whose prototype is null. R=yangguo@chromium.org BUG=v8:5085 Review-Url: https://codereview.chromium.org/2041103007 Cr-Commit-Position: refs/heads/master@{#36840}
-
- 07 Jun, 2016 1 commit
-
-
ishell authored
PrimaryStubCache and SecondaryStubCache: resurrected outdated tests (and enabled stub cache counters in the new LoadIC). TryProbeStubCache: decreased number of code objects created. Review-Url: https://codereview.chromium.org/2040193002 Cr-Commit-Position: refs/heads/master@{#36794}
-
- 06 Jun, 2016 3 commits
-
-
epertoso authored
Revert of Provide a tagged allocation top pointer. (patchset #5 id:80001 of https://codereview.chromium.org/2028633002/ ) Reason for revert: d8 segfaults on some benchmarks on ia32. Investigating. Original issue's description: > Provide a tagged allocation top pointer. > > Taking over http://crrev.com/1924223002. > > BUG=chromium:606711 > LOG=N > > Committed: https://crrev.com/f42c9e93c80fdf57e8f92bb87f6ed927d0ae4028 > Committed: https://crrev.com/c99caf307ba3bb1b1cf08bf4172f503754c41341 > Cr-Original-Commit-Position: refs/heads/master@{#36633} > Cr-Commit-Position: refs/heads/master@{#36742} TBR=bmeurer@chromium.org,hpayer@chromium.org,machenbach@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:606711 Review-Url: https://codereview.chromium.org/2035413003 Cr-Commit-Position: refs/heads/master@{#36758}
-
ishell authored
[stubs] Introducing LoadICTFStub and LoadICTrampolineTFStub and a switch to enable them instead of respective platform stubs. The stubs do not increase respective counters as they are in the snapshot and --native-code-counters is off during snapshot creation anyway. Review-Url: https://codereview.chromium.org/2031753003 Cr-Commit-Position: refs/heads/master@{#36754}
-
epertoso authored
Taking over http://crrev.com/1924223002. BUG=chromium:606711 LOG=N Committed: https://crrev.com/f42c9e93c80fdf57e8f92bb87f6ed927d0ae4028 Review-Url: https://codereview.chromium.org/2028633002 Cr-Original-Commit-Position: refs/heads/master@{#36633} Cr-Commit-Position: refs/heads/master@{#36742}
-
- 02 Jun, 2016 2 commits
-
-
ishell authored
[stubs] Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. This CL also replaces some Branch() usages with GotoIf/GotoUnless. (This is a reland after fixing issues that prevented this CL from landing in other CLs). BUG=v8:2743 LOG=Y Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e Cr-Commit-Position: refs/heads/master@{#36657} Review-Url: https://codereview.chromium.org/1995453002 Cr-Commit-Position: refs/heads/master@{#36686}
-
bmeurer authored
We use StringFromCharCode to optimize calls to String.fromCharCode with a single Number argument for now. We will use it to also implement the charAt method on the String prototype. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2037453003 Cr-Commit-Position: refs/heads/master@{#36668}
-
- 01 Jun, 2016 4 commits
-
-
ishell authored
Revert of Extend HasProperty stub with dictionary-mode and double-elements objects support. (patchset #8 id:280001 of https://codereview.chromium.org/1995453002/ ) Reason for revert: There are crashes on Win32 and Win64 bots. Original issue's description: > Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support. > > This CL also replaces some Branch() usages with GotoIf/GotoUnless. > > BUG=v8:2743 > LOG=Y > > Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e > Cr-Commit-Position: refs/heads/master@{#36657} TBR=verwaest@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:2743 Review-Url: https://codereview.chromium.org/2028333002 Cr-Commit-Position: refs/heads/master@{#36659}
-
ishell authored
This CL also replaces some Branch() usages with GotoIf/GotoUnless. BUG=v8:2743 LOG=Y Review-Url: https://codereview.chromium.org/1995453002 Cr-Commit-Position: refs/heads/master@{#36657}
-
epertoso authored
Revert of Provide a tagged allocation top pointer. (patchset #4 id:60001 of https://codereview.chromium.org/2028633002/ ) Reason for revert: Seems to be causing flakiness in some wasm tests: https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/10598 https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20debug/builds/2528 Original issue's description: > Provide a tagged allocation top pointer. > > Taking over http://crrev.com/1924223002. > > BUG=chromium:606711 > LOG=N > > Committed: https://crrev.com/f42c9e93c80fdf57e8f92bb87f6ed927d0ae4028 > Cr-Commit-Position: refs/heads/master@{#36633} TBR=bmeurer@chromium.org,hpayer@chromium.org,machenbach@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:606711 Review-Url: https://codereview.chromium.org/2031493002 Cr-Commit-Position: refs/heads/master@{#36640}
-
epertoso authored
Taking over http://crrev.com/1924223002. BUG=chromium:606711 LOG=N Review-Url: https://codereview.chromium.org/2028633002 Cr-Commit-Position: refs/heads/master@{#36633}
-
- 31 May, 2016 1 commit
-
-
bmeurer authored
When we moved the String.fromCharCode builtin to C++, we slightly regressed the fast single character code argument case. Recovered some of the performance by implementing the builtin using the TurboFan CodeStubAssembler. Drive-by-fix: Make sure the stack trace from the implicit ToNumber conversion in String.fromCharCode includes the builtin by adding a regression test for that. R=yangguo@chromium.org BUG=chromium:609831,chromium:613947,v8:5049 Review-Url: https://codereview.chromium.org/2021143003 Cr-Commit-Position: refs/heads/master@{#36611}
-
- 24 May, 2016 1 commit
-
-
danno authored
BUG=chromium:608675 LOG=n Review-Url: https://codereview.chromium.org/1987183002 Cr-Commit-Position: refs/heads/master@{#36463}
-
- 21 May, 2016 2 commits
-
-
bmeurer authored
Address computation on 64-bit platforms must be done in Word64, mixing Word32 here is unsound. TBR=danno@chromium.org Review-Url: https://codereview.chromium.org/1997223002 Cr-Commit-Position: refs/heads/master@{#36428}
-
danno authored
BUG=chromium:613796 LOG=N Review-Url: https://codereview.chromium.org/2002813002 Cr-Commit-Position: refs/heads/master@{#36425}
-
- 19 May, 2016 2 commits
-
-
danno authored
Previously, CodeStubAssembler macros performing FixedArray element accesses had to compute offsets to elements explicitly with a fair amount of duplicated code. Furthermore, any peephole optimizations that could produce better code-- like recognizing constant indices or combining array index computation with Smi untagging--were also duplicated. This change factors the code to compute FixedArray index offsets into a common routine in the CodeStubAssembler that applies standard peephole optimizations to all accesses. In order to do this, it also introduces limited introspection into the up-until-now opaque Node* type exported from code-assembler.h, allowing Nodes to be queried whether they are constant and extracting their constant value in that case. Review-Url: https://codereview.chromium.org/1989363004 Cr-Commit-Position: refs/heads/master@{#36370}
-
danno authored
Review-Url: https://codereview.chromium.org/1995543003 Cr-Commit-Position: refs/heads/master@{#36355}
-
- 17 May, 2016 1 commit
-
-
bmeurer authored
This adds back the instanceof operator support in the backends and introduces a @@hasInstance protector cell on the isolate that guards the fast path for the InstanceOfStub. This way we recover the ~10% regression on Octane EarleyBoyer in Crankshaft and greatly improve TurboFan and Ignition performance of instanceof. R=ishell@chromium.org TBR=hpayer@chromium.org,rossberg@chromium.org BUG=chromium:597249, v8:4447 LOG=n Review-Url: https://codereview.chromium.org/1980483003 Cr-Commit-Position: refs/heads/master@{#36275}
-