[v8-dev] Use registers to pass arguments to GenericBinaryOpStub.... (issue554062)

2010-01-25 Thread kaznacheev
Reviewers: Kevin Millikin, Mads Ager, Erik Corry, Description: Use registers to pass arguments to GenericBinaryOpStub. Currently arguments are never passed on registers (due to the way ArgsInRegistersSupported is written) and if they were, the stub would break in several places because registers

[v8-dev] Re: Use registers to pass arguments to GenericBinaryOpStub.... (issue554062)

2010-01-25 Thread kaznacheev
http://codereview.chromium.org/554062/diff/1/2 File src/ia32/codegen-ia32.cc (right): http://codereview.chromium.org/554062/diff/1/2#newcode7506 src/ia32/codegen-ia32.cc:7506: HasArgumentsReversed() ? On 2010/01/25 15:44:03, Mads Ager wrote: Indent by one more space. Looks like 3-space indent i

[v8-dev] Fixing an assertion fail introduced in 3692.... (issue556002)

2010-01-25 Thread kaznacheev
Reviewers: Mads Ager, erik.corry._gmail.com, Description: Fixing an assertion fail introduced in 3692. Also fixing some formatting issues. Please review this at http://codereview.chromium.org/556002 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/ia32

[v8-dev] Support register arguments in more cases.... (issue555098)

2010-01-26 Thread kaznacheev
Reviewers: Kevin Millikin, Mads Ager, Erik Corry, Description: Support register arguments in more cases. 1. MUL and DIV on SMIs. 2. When calling GenericBinaryOpStub from a virtual frame. 3. When generating code for a loop counter. Overall performance gain is about 0.6%. Please review this at htt

[v8-dev] Re: Support register arguments in more cases.... (issue555098)

2010-01-26 Thread kaznacheev
http://codereview.chromium.org/555098/diff/1/2 File src/ia32/codegen-ia32.cc (right): http://codereview.chromium.org/555098/diff/1/2#newcode7122 src/ia32/codegen-ia32.cc:7122: __ mov(edi, Operand(eax)); // backup the 1st operand On 2010/01/26 09:07:22, Kevin Millikin wrote: No need for Operand

[v8-dev] Re: Refactoring and small optimization of the smi code for binary op stubs... (issue556019)

2010-01-26 Thread kaznacheev
Wow, that's great! I must admit I was thinking about something like this but was too afraid to break something:) LGTM On 2010/01/26 13:36:12, Kevin Millikin wrote: Hi Vlad. It's good you're starting to look at this code. I started to change the smi code for binary op stubs to work with val

[v8-dev] Implementing inline caches for binary operations (ia32).... (issue553117)

2010-01-27 Thread kaznacheev
Reviewers: Kevin Millikin, Mads Ager, Erik Corry, Description: Implementing inline caches for binary operations (ia32). This is a subset of a CL reviewed earlier(http://codereview.chromium.org/551093). The register usage optimisation part has been reviewed and submitted separately. Two fast c

[v8-dev] Use registers to pass arguments to GenericBinaryOpStub (x64).... (issue555147)

2010-01-28 Thread kaznacheev
Reviewers: Kevin Millikin, Mads Ager, Description: Use registers to pass arguments to GenericBinaryOpStub (x64). This is a port to x64 of the following CLs: http://codereview.chromium.org/554062 (use registers at all) http://codereview.chromium.org/555098 (use registers for MUL, DIV and virtu

[v8-dev] Re: Use registers to pass arguments to GenericBinaryOpStub (x64).... (issue555147)

2010-01-28 Thread kaznacheev
http://codereview.chromium.org/555147/diff/1/3 File src/x64/codegen-x64.cc (right): http://codereview.chromium.org/555147/diff/1/3#newcode7503 src/x64/codegen-x64.cc:7503: Register left = rdx; On 2010/01/28 12:32:09, Mads Ager wrote: Does it add much to rename to left and right here. The metho

[v8-dev] Re: Implementing inline caches for binary operations (ia32).... (issue553117)

2010-02-02 Thread kaznacheev
Kevin asked me if it is possible to do the same with less complexity and more similarity to other types of ICs. I rewrote most of the CL. It is still very different from existing ICS, but I thinks it is now much more transparent. http://codereview.chromium.org/553117 -- v8-dev mailing list v

[v8-dev] Re: Implementing inline caches for binary operations (ia32).... (issue553117)

2010-02-08 Thread kaznacheev
Kevin, I am not sure I understand your idea. One way I can think of would be like this: 1. CodeGenerator should generate calls to BinaryOpIC_Miss stub. 2. The stub should analyze the types of operands and do the patching to one of the GenericBinaryOpStub variants. 3. Before returning the stub

[v8-dev] Re: Implementing inline caches for binary operations (ia32).... (issue553117)

2010-02-25 Thread kaznacheev
I have addressed most of the comments. Still not sure what to do with BinaryOpIC::patch. Also uploaded a rebased patch. http://codereview.chromium.org/553117/diff/13001/14002 File src/ia32/codegen-ia32.cc (right): http://codereview.chromium.org/553117/diff/13001/14002#newcode7909 src/ia32/codeg

[v8-dev] Porting binary op ICs to x64. (issue845002)

2010-03-11 Thread kaznacheev
Reviewers: Kevin Millikin, Mads Ager, Message: The gain on Sunspider-sum is ~0.3% Description: Porting binary op ICs to x64. Please review this at http://codereview.chromium.org/845002 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/x64/codegen-x64.h

[v8-dev] Porting binary op ICs to arm (issue883001)

2010-03-11 Thread kaznacheev
Reviewers: Kevin Millikin, Mads Ager, Description: Porting binary op ICs to arm Please review this at http://codereview.chromium.org/883001 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/arm/codegen-arm.h M src/arm/codegen-arm.cc -- v8-dev m

[v8-dev] Re: Porting binary op ICs to arm (issue883001)

2010-03-11 Thread kaznacheev
The gain on SunSpider-sum is ~0.7% http://codereview.chromium.org/883001 -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Porting binary op ICs to x64. (issue845002)

2010-03-18 Thread kaznacheev
http://codereview.chromium.org/845002/diff/4001/3002 File src/x64/codegen-x64.cc (right): http://codereview.chromium.org/845002/diff/4001/3002#newcode8747 src/x64/codegen-x64.cc:8747: if (op_ == Token::ADD) { On 2010/03/17 10:10:59, Mads Ager wrote: Indentation is off here. Done. http://code

[v8-dev] Re: Revert change 4201. (issue1113007)

2010-03-22 Thread kaznacheev
LGTM On 2010/03/22 12:15:28, William Hesse wrote: Revert change so that we can push to trunk. Multiple different failures on ARM simulator in debug mode. tbr=kaznacheev http://codereview.chromium.org/1113007 -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group

[v8-dev] Removing BinaryOpIC::Clear. This method relied on some less-than-obvious hack... (issue1623005)

2010-04-08 Thread kaznacheev
@ -9068,15 +9068,6 @@ default: UNREACHABLE(); } - - // TODO(kaznacheev) Remove this (along with clearing) if it does not harm - // performance. - // Generate an unreachable reference to the DEFAULT stub so that it can be - // found at the end of this stub when clearing ICs at

[v8-dev] Re-submitting binary op ICs for ARM. Does not break debug tests (issue1629008)

2010-04-08 Thread kaznacheev
Reviewers: Mads Ager, Erik Corry, Description: Re-submitting binary op ICs for ARM. Does not break debug tests now. Please review this at http://codereview.chromium.org/1629008/show SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/arm/codegen-arm.h

[v8-dev] Fix BinaryOpIC implementation on ARM.... (issue1687005)

2010-04-21 Thread kaznacheev
Reviewers: Erik Corry, Description: Fix BinaryOpIC implementation on ARM. On a pair of smis HEAP_NUMBERS stub is significantly slower than GENERIC. This slows down some tests dramatically (crypto-aes from SunSpider). With this change HEAP_NUMBERS stub switches to GENERIC stub the first time

[v8-dev] Extend CallIC to support non-constant names.... (issue2280007)

2010-05-27 Thread kaznacheev
Reviewers: Mads Ager, Description: Extend CallIC to support non-constant names. This speeds up constructs like this: var zz='replace'; '123'[zz]('3','4'); Please review this at http://codereview.chromium.org/2280007/show SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected

[v8-dev] Re: Extend CallIC to support non-constant names.... (issue2280007)

2010-05-28 Thread kaznacheev
I forgot to add that this change is for ia32 only. ARM and x64 changes are only made to make them compile. http://codereview.chromium.org/2280007/diff/1/20 File src/arm/ic-arm.cc (right): http://codereview.chromium.org/2280007/diff/1/20#newcode293 src/arm/ic-arm.cc:293: CallModeFlag call_mode

[v8-dev] Re: Extend CallIC to support non-constant names.... (issue2280007)

2010-05-31 Thread kaznacheev
I have extended the megamorphic case to handle non-string keys. Now it starts with looking up monomorphic cache (this still works pretty good in many cases), but if it misses it calls the KeyedCallIC_Generic stub to get the function in the fastest possible way. This does not regress usual te

[v8-dev] Re: Extend CallIC to support non-constant names.... (issue2280007)

2010-06-01 Thread kaznacheev
I have completely removed CallModeFlag and introduced KeyedCallIC. Reusing generating functions in ic-ia32.cc in a more transparent manner. Will add a test soon. http://codereview.chromium.org/2280007/diff/20001/21005 File src/ia32/codegen-ia32.cc (right): http://codereview.chromium.org/2280007

[v8-dev] Fix charCodeAt custom call generator.... (issue2478003)

2010-06-02 Thread kaznacheev
Reviewers: Vitaly, Message: Please take a look. I have added a test that should fail on TOT. Description: Fix charCodeAt custom call generator. If the string is non-flat and the index is a non-round number (e.g. 1.1) then Runtime_StringCharCodeAt will fail (because in can only handle a round in

[v8-dev] Re: Make StringCharCodeAt runtime function do what it name implies and not (issue2467006)

2010-06-02 Thread kaznacheev
LGTM http://codereview.chromium.org/2467006/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Extend CallIC to support non-constant names.... (issue2280007)

2010-06-04 Thread kaznacheev
Covered all Anton's comments except the idea about api tests (need to discuss) http://codereview.chromium.org/2280007/diff/72002/86010 File src/ia32/ic-ia32.cc (right): http://codereview.chromium.org/2280007/diff/72002/86010#newcode1080 src/ia32/ic-ia32.cc:1080: __ CmpInstanceType(ebx, FIRST_

[v8-dev] Re: Extend CallIC to support non-constant names.... (issue2280007)

2010-06-04 Thread kaznacheev
Anton, please take a look at the two new tests in test-api.cc. http://codereview.chromium.org/2280007/diff/72002/86010 File src/ia32/ic-ia32.cc (right): http://codereview.chromium.org/2280007/diff/72002/86010#newcode1321 src/ia32/ic-ia32.cc:1321: // Check that the receiver is a valid JS object.

[v8-dev] Re: Extend CallIC to support non-constant names.... (issue2280007)

2010-06-04 Thread kaznacheev
All done. Will check for perf regressions again and submit. http://codereview.chromium.org/2280007/diff/134001/119012 File src/ic.cc (right): http://codereview.chromium.org/2280007/diff/134001/119012#newcode605 src/ic.cc:605: } else { Sorry, removed now. On 2010/06/04 10:29:34, antonm wrote:

[v8-dev] Add logic from KeyedLoadIC generic stub to KeyedCallIC megamorphic stub.... (issue2754003)

2010-06-09 Thread kaznacheev
Reviewers: Mads Ager, Description: Add logic from KeyedLoadIC generic stub to KeyedCallIC megamorphic stub. This should make access faster for arrays of functions. Please review this at http://codereview.chromium.org/2754003/show SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

[v8-dev] Re: Extend CallIC to support non-constant names.... (issue2280007)

2010-06-09 Thread kaznacheev
http://codereview.chromium.org/2280007/diff/144001/145029 File test/cctest/test-api.cc (right): http://codereview.chromium.org/2280007/diff/144001/145029#newcode7210 test/cctest/test-api.cc:7210: CHECK_EQ(42*5+40*5, context->Global()->Get(v8_str("result"))->Int32Value()); On 2010/06/04 11:19:02,

[v8-dev] Re: Add logic from KeyedLoadIC generic stub to KeyedCallIC megamorphic stub.... (issue2754003)

2010-06-09 Thread kaznacheev
http://codereview.chromium.org/2754003/diff/13001/12004 File src/ia32/ic-ia32.cc (right): http://codereview.chromium.org/2754003/diff/13001/12004#newcode309 src/ia32/ic-ia32.cc:309: Register r0, On 2010/06/09 15:08:45, Mads Ager wrote: r0 -> scratch or map? Done. http://codereview.chromium.o

[v8-dev] Port KeyedCallIC implementation to x64 and ARM.... (issue2853003)

2010-06-15 Thread kaznacheev
Reviewers: Mads Ager, Description: Port KeyedCallIC implementation to x64 and ARM. Also edited ic-ia32.cc for clarity and better formatting. Please review this at http://codereview.chromium.org/2853003/show SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M

[v8-dev] Re: Port KeyedCallIC implementation to x64 and ARM.... (issue2853003)

2010-06-16 Thread kaznacheev
http://codereview.chromium.org/2853003/diff/1/13 File src/arm/ic-arm.cc (right): http://codereview.chromium.org/2853003/diff/1/13#newcode178 src/arm/ic-arm.cc:178: // key - holds the smi key on entry and is unchanged. Added clearer comments. On 2010/06/15 16:14:58, Mads Ager wrote: The com

[v8-dev] Re: Port KeyedCallIC implementation to x64 and ARM.... (issue2853003)

2010-06-16 Thread kaznacheev
Fixed an assertion in arm debug mode. Submitting. http://codereview.chromium.org/2853003/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Remove redundant checks in and around GenerateDictionaryLoad.... (issue2801007)

2010-06-17 Thread kaznacheev
Reviewers: Mads Ager, Description: Remove redundant checks in and around GenerateDictionaryLoad. Similar or duplicate checks are scattered around the code before doing the dictionary load. Also the entire branch in GenerateCallNormal that handles global/builtin receiver is guaranteed to bail out

[v8-dev] Re: Remove redundant checks in and around GenerateDictionaryLoad.... (issue2801007)

2010-06-22 Thread kaznacheev
http://codereview.chromium.org/2801007/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Fixing the regression introduced in r4716.... (issue2862028)

2010-06-23 Thread kaznacheev
Reviewers: Søren Gjesse, Description: Fixing the regression introduced in r4716. The regression made 2 tests fail on ia32 with --always-full-compiler. Please review this at http://codereview.chromium.org/2862028/show SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected fil

[v8-dev] Re: Remove redundant checks in and around GenerateDictionaryLoad.... (issue2801007)

2010-06-23 Thread kaznacheev
http://codereview.chromium.org/2801007/diff/1/2 File src/ia32/ic-ia32.cc (right): http://codereview.chromium.org/2801007/diff/1/2#newcode98 src/ia32/ic-ia32.cc:98: // Appropriate access checks must be done before entering this code. On 2010/06/17 11:37:04, Mads Ager wrote: You need to spell out

[v8-dev] Re: Remove redundant checks in and around GenerateDictionaryLoad.... (issue2801007)

2010-06-23 Thread kaznacheev
http://codereview.chromium.org/2801007/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Extracting relocation info from the code object.... (issue2812041)

2010-07-02 Thread kaznacheev
Reviewers: Mads Ager, Erik Corry, Description: Extracting relocation info from the code object. It is now stored in a ByteArray referenced from the code object header. Please review this at http://codereview.chromium.org/2812041/show SVN Base: http://v8.googlecode.com/svn/branches/bleeding_ed

[v8-dev] Re: Fix crash introduced in r5019.... (issue2800044)

2010-07-06 Thread kaznacheev
http://codereview.chromium.org/2800044/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Fix crash introduced in r5019.... (issue2800044)

2010-07-06 Thread kaznacheev
http://codereview.chromium.org/2800044/diff/1/2 File src/heap.cc (right): http://codereview.chromium.org/2800044/diff/1/2#newcode2354 src/heap.cc:2354: Object* reloc_info = AllocateByteArray(desc.reloc_size, TENURED); On 2010/07/06 13:39:35, Vitaly wrote: Please add a note that this mustn't be

[v8-dev] Fix crash introduced in r5019.... (issue2800044)

2010-07-06 Thread kaznacheev
Reviewers: Vitaly, Description: Fix crash introduced in r5019. Note to self: never leave uninitialized objects in the code space. Please review this at http://codereview.chromium.org/2800044/show SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/heap.

[v8-dev] Move serialized scope info from Code object to SharedFunctionInfo. (issue2918001)

2010-07-08 Thread kaznacheev
Reviewers: Vitaly, Description: Move serialized scope info from Code object to SharedFunctionInfo. Please review this at http://codereview.chromium.org/2918001/show SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/accessors.cc M src/arm/regexp-m

[v8-dev] Re: Move serialized scope info from Code object to SharedFunctionInfo. (issue2918001)

2010-07-08 Thread kaznacheev
http://codereview.chromium.org/2918001/diff/1/21 File src/compiler.cc (right): http://codereview.chromium.org/2918001/diff/1/21#newcode157 src/compiler.cc:157: static Handle CreateScopeInfo(CompilationInfo* info) { On 2010/07/08 13:23:17, Vitaly wrote: This should only receive info->scope(). Al

[v8-dev] Re: Move serialized scope info from Code object to SharedFunctionInfo. (issue2918001)

2010-07-09 Thread kaznacheev
I have made just a few changes but for some reason the latest patch set seems to think that every file changed. http://codereview.chromium.org/2918001/diff/33002/12015 File src/scopeinfo.h (right): http://codereview.chromium.org/2918001/diff/33002/12015#newcode156 src/scopeinfo.h:156: static

[v8-dev] Create a separate class to encapsulate ScopeInfo serialization.... (issue2908009)

2010-07-14 Thread kaznacheev
Reviewers: Mads Ager, Description: Create a separate class to encapsulate ScopeInfo serialization. The static ScopeInfo members moved into this class. The new class is named ScopeInfoObject which I am not proud of, better ideas are very welcome. Also got rid of the sentinels in the serialized s

[v8-dev] Re: Create a separate class to encapsulate ScopeInfo serialization.... (issue2908009)

2010-07-14 Thread kaznacheev
Renamed ScopeInfoObject to SerializedScopeInfo (discussed with Mads). http://codereview.chromium.org/2908009/diff/1/15 File src/objects-inl.h (right): http://codereview.chromium.org/2908009/diff/1/15#newcode2650 src/objects-inl.h:2650: ScopeInfoObject* SharedFunctionInfo::scope_info() { On 2010

[v8-dev] Support object literal map caching for literals with keys that are array indi... (issue2858064)

2010-07-21 Thread kaznacheev
Reviewers: Mads Ager, Description: Support object literal map caching for literals with keys that are array indices. The caching code used to require that all keys in the literal were symbol strings in order to be able to cache object literal maps. Relaxed this requirement to allow array indice

[v8-dev] Cache maps when normalizing properties.... (issue3028019)

2010-07-23 Thread kaznacheev
Reviewers: Mads Ager, Description: Cache maps when normalizing properties. Not for commit. I am unsure about whether the cache should be global (as ContextSlotCache) or per-context. I am inclined towards per-context as the information in the cache is context-dependent, and multiple contexts wou

[v8-dev] Cache maps for slow case objects. (issue3032028)

2010-07-27 Thread kaznacheev
Reviewers: antonm, Vitaly, Description: Cache maps for slow case objects. Please review this at http://codereview.chromium.org/3032028/show SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/bootstrapper.cc M src/contexts.h M src/heap.h M

[v8-dev] Re: X64: Fix order of operands on movq(reg, xmm). (issue2806080)

2010-07-27 Thread kaznacheev
Drive-by comment: should not the disassembler change as well? http://codereview.chromium.org/2806080/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Cache maps for slow case objects. (issue3032028)

2010-07-28 Thread kaznacheev
Refactored. Please review again. http://codereview.chromium.org/3032028/diff/1/4 File src/heap.cc (right): http://codereview.chromium.org/3032028/diff/1/4#newcode780 src/heap.cc:780: ClearNormalizedMapCaches(); On 2010/07/27 11:49:09, antonm1 wrote: maybe you should only clear those when compa

[v8-dev] Re: Releasing allocated chunks in Pool's destructor. (issue3048034)

2010-07-28 Thread kaznacheev
LGTM On 2010/07/28 10:27:13, antonm wrote: Vlad, may you have a look? yours, anton. http://codereview.chromium.org/3048034/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Cache maps for slow case objects. (issue3032028)

2010-07-28 Thread kaznacheev
http://codereview.chromium.org/3032028/diff/12001/13007 File src/objects.cc (right): http://codereview.chromium.org/3032028/diff/12001/13007#newcode2142 src/objects.cc:2142: Counters::normalized_maps.Increment(); On 2010/07/28 12:14:51, antonm wrote: shouldn't there be another counter which tic

[v8-dev] Avoid GC when compiling CallIC stubs.... (issue3047027)

2010-07-30 Thread kaznacheev
Reviewers: antonm, Vitaly, Description: Avoid GC when compiling CallIC stubs. In rare cases GC could be called from ComputeCallMiss function thus breaking CallIC::LoadFunction. Please review this at http://codereview.chromium.org/3047027/show SVN Base: http://v8.googlecode.com/svn/branches/bl

[v8-dev] Re: Avoid GC when compiling CallIC stubs.... (issue3047027)

2010-07-30 Thread kaznacheev
http://codereview.chromium.org/3047027/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Avoid GC when compiling CallIC stubs.... (issue3047027)

2010-07-30 Thread kaznacheev
http://codereview.chromium.org/3047027/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Avoid GC when compiling CallIC stubs.... (issue3047027)

2010-07-30 Thread kaznacheev
Addressed the comments. Added AssertNoGC class to prohibit GC while the stubs are being compiled. http://codereview.chromium.org/3047027/diff/1/2 File src/arm/stub-cache-arm.cc (right): http://codereview.chromium.org/3047027/diff/1/2#newcode1258 src/arm/stub-cache-arm.cc:1258: __ Jump(Handle(Co

[v8-dev] Re: Avoid GC when compiling CallIC stubs.... (issue3047027)

2010-08-04 Thread kaznacheev
Addressed the comments and rebased. I do not quite like what I have done to ic.cc, ideas on how to make it less ugly are welcome. http://codereview.chromium.org/3047027/diff/16001/17003 File src/heap.cc (right): http://codereview.chromium.org/3047027/diff/16001/17003#newcode328 src/heap.cc:328:

[v8-dev] Re: Avoid GC when compiling CallIC stubs.... (issue3047027)

2010-08-05 Thread kaznacheev
Agree. Done. On 2010/08/04 14:45:37, Vitaly wrote: LGTM I think now all calls to UpdateCaches are protected by AssertNoGC, so having AssertNoGC is UpdateCaches is unnecessary. Since UpdateCaches gets the lookup object from the calling function it's the responsibility of the caller to prote

[v8-dev] Re: Avoid GC when compiling CallIC stubs.... (issue3047027)

2010-08-05 Thread kaznacheev
http://codereview.chromium.org/3047027/diff/16001/17003 File src/heap.cc (right): http://codereview.chromium.org/3047027/diff/16001/17003#newcode328 src/heap.cc:328: ASSERT(gc_allowed_); On 2010/08/04 14:39:37, antonm wrote: On 2010/08/04 14:29:20, Vladislav Kaznacheev wrote: > Cannot see m

[v8-dev] Reapplying r5174 (Avoid GC when compiling CallIC stubs).... (issue3030049)

2010-08-05 Thread kaznacheev
Reviewers: Vyacheslav Egorov, Vitaly, antonm, Description: Reapplying r5174 (Avoid GC when compiling CallIC stubs). I could not find a way to introduce simple yet useful assertions, so I removed the assertions that broke tests. The new patch just fixes the actual problem (GC triggered while raw

[v8-dev] Reapplying r5147 (caching maps for slow case objects).... (issue3134027)

2010-08-24 Thread kaznacheev
Reviewers: Mads Ager, antonm, Description: Reapplying r5147 (caching maps for slow case objects). r5147 wrongly assumed that a code cache for a slow case map is always empty. This patch solves this: whenever we attempt to add a stub to a map's code cache we check that this map is cached. If i

[v8-dev] Re: Reapplying r5147 (caching maps for slow case objects).... (issue3134027)

2010-08-24 Thread kaznacheev
http://codereview.chromium.org/3134027/diff/1/9 File src/objects-debug.cc (right): http://codereview.chromium.org/3134027/diff/1/9#newcode654 src/objects-debug.cc:654: ASSERT(instance_descriptors() == Heap::empty_descriptor_array()); On 2010/08/24 12:36:20, antonm wrote: minor cosmetic: maybe A

[v8-dev] Avoid pushing arguments twice in GenericBinaryOpStub.... (issue3290012)

2010-09-07 Thread kaznacheev
Reviewers: Vitaly, Description: Avoid pushing arguments twice in GenericBinaryOpStub. Under some conditions (args in registers, non-number arguments passed) GenerateRegisterArgumentsPush was called twice and the stack broke. Please review this at http://codereview.chromium.org/3290012/show SV

[v8-dev] Re: Avoid pushing arguments twice in GenericBinaryOpStub.... (issue3290012)

2010-09-07 Thread kaznacheev
Added a test. On 2010/09/07 12:48:31, Vitaly wrote: LGTM and thanks! But we do need a test case for this. -- Vitaly http://codereview.chromium.org/3290012/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Dynamically determine optimal instance size.... (issue3329019)

2010-09-10 Thread kaznacheev
Reviewers: Mads Ager, Vitaly, antonm, Description: Dynamically determine optimal instance size. The number of inobject properties used to be derived from the number of this property assignments in the constructor (and increased by 2 to allow for properties added later). This very often leads to

[v8-dev] Re: Dynamically determine optimal instance size.... (issue3329019)

2010-09-10 Thread kaznacheev
This is almost ready for commit with two exceptions: - I am going to add a test for multiple contexts - I want to make sure I do not break anything related to API functions http://codereview.chromium.org/3329019/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/

[v8-dev] Prevent inline constructor generation when duplicate properties are present i... (issue3434004)

2010-09-15 Thread kaznacheev
Reviewers: Søren Gjesse, Description: Prevent inline constructor generation when duplicate properties are present in the constructor. Currenly the constructor like this: function f() { this.a = 0; this.a = 1; this.a = 2; } creates a map with duplicate desciptors which is bad in many way

[v8-dev] Re: Prevent inline constructor generation when duplicate properties are present i... (issue3434004)

2010-09-16 Thread kaznacheev
http://codereview.chromium.org/3434004/diff/1/2 File src/heap.cc (right): http://codereview.chromium.org/3434004/diff/1/2#newcode2717 src/heap.cc:2717: // guarantee the uniqueness of property names (it would have required On 2010/09/16 06:43:41, Søren Gjesse wrote: We could do the sorting and c

[v8-dev] Merge r5476 into 2.3 branch (issue3434004). (issue3427007)

2010-09-16 Thread kaznacheev
Reviewers: Mads Ager, Description: Merge r5476 into 2.3 branch (issue3434004). Please review this at http://codereview.chromium.org/3427007/show SVN Base: http://v8.googlecode.com/svn/branches/2.3/ Affected files: M src/heap.cc M src/objects.h M src/objects.cc M src/ve

[v8-dev] Merge r5476 into 2.2 branch (issue3434004). (issue3430006)

2010-09-16 Thread kaznacheev
Reviewers: Mads Ager, Description: Merge r5476 into 2.2 branch (issue3434004). Please review this at http://codereview.chromium.org/3430006/show SVN Base: http://v8.googlecode.com/svn/branches/2.2/ Affected files: M src/heap.cc M src/objects.h M src/objects.cc M src/ve

[v8-dev] Re: Dynamically determine optimal instance size.... (issue3329019)

2010-09-20 Thread kaznacheev
I have solved the problem with GC hitting while the inobject slack tracking is in progress. Comments addressed. Still need to add a test for multiple contexts. http://codereview.chromium.org/3329019/diff/1/2 File src/arm/builtins-arm.cc (right): http://codereview.chromium.org/3329019/diff/1

[v8-dev] Re: Dynamically determine optimal instance size.... (issue3329019)

2010-09-21 Thread kaznacheev
Added missing mark-compact.cc. http://codereview.chromium.org/3329019/diff/15001/16001 File src/arm/builtins-arm.cc (right): http://codereview.chromium.org/3329019/diff/15001/16001#newcode693 src/arm/builtins-arm.cc:693: } // Otherwise r7 already holds undefined. On 2010/09/21 11:48:55, antonm

[v8-dev] Re: Dynamically determine optimal instance size.... (issue3329019)

2010-09-22 Thread kaznacheev
); Is there a difference? An Assert at the code generation phase is guaranteed to prevent generating the code for the wrong set of arguments. On 2010/09/21 16:49:00, antonm wrote: On 2010/09/21 12:32:41, Vladislav Kaznacheev wrote: > Added an assert at the top of the function on all 3 platforms. &

[v8-dev] Unuse labels when bailing out of StubCompiler methods.... (issue3405022)

2010-09-22 Thread kaznacheev
Reviewers: Vitaly, antonm, Description: Unuse labels when bailing out of StubCompiler methods. There are 3 methods where early return happen before the miss label is bound. This is harmless in Release mode, in Debug an assertion fails. Please review this at http://codereview.chromium.org/34050

[v8-dev] Re: Dynamically determine optimal instance size.... (issue3329019)

2010-09-23 Thread kaznacheev
Addressed the comments. Submitting. Thanks for the comments, everyone! http://codereview.chromium.org/3329019/diff/40001/39007 File src/ia32/assembler-ia32.h (right): http://codereview.chromium.org/3329019/diff/40001/39007#newcode598 src/ia32/assembler-ia32.h:598: void dec_b(const Operand& dst

[v8-dev] Prevent modification of cached normalized maps.... (issue3472006)

2010-09-23 Thread kaznacheev
Reviewers: , Description: Prevent modification of cached normalized maps. Finally sovles the problem that r5342 attempted to solve. When adding a stub to a map's code cache we need to make sure that this map is not used by object that do not need this stub. Existing solution had 2 flaws: 1. It

[v8-dev] Re: Prevent modification of cached normalized maps.... (issue3472006)

2010-09-23 Thread kaznacheev
http://codereview.chromium.org/3472006/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Support dec_b instruction in ia32 and x64 disassembler. (issue3412028)

2010-09-23 Thread kaznacheev
Reviewers: antonm, Vitaly, Description: Support dec_b instruction in ia32 and x64 disassembler. Please review this at http://codereview.chromium.org/3412028/show SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/ia32/disasm-ia32.cc M src/x64/disa

[v8-dev] Re: Support dec_b instruction in ia32 and x64 disassembler. (issue3412028)

2010-09-23 Thread kaznacheev
Simplified the code on Vitaly's advise. http://codereview.chromium.org/3412028/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Support dec_b instruction in ia32 and x64 disassembler. (issue3412028)

2010-09-23 Thread kaznacheev
The disassembler test works, and the output contains decb/dec_b instructions. On 2010/09/23 18:29:41, Vitaly wrote: LGTM if it works. http://codereview.chromium.org/3412028/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Support dec_b instruction in ia32 and x64 disassembler. (issue3412028)

2010-09-23 Thread kaznacheev
http://codereview.chromium.org/3412028/diff/5001/6001 File src/ia32/disasm-ia32.cc (right): http://codereview.chromium.org/3412028/diff/5001/6001#newcode1199 src/ia32/disasm-ia32.cc:1199: data += PrintRightOperand(data); PrintRightByteOperand would print something like dec_b [cl] while we want d

[v8-dev] Re: Prevent modification of cached normalized maps.... (issue3472006)

2010-09-23 Thread kaznacheev
Thanks for the comments. Please review for naming clarity. http://codereview.chromium.org/3472006/diff/9001/8008 File src/objects.cc (right): http://codereview.chromium.org/3472006/diff/9001/8008#newcode2177 src/objects.cc:2177: // cleared if the object goes back to fast properties. On 2010/09/

[v8-dev] Merge r5518 into 2.3 branch. (issue3501007)

2010-09-24 Thread kaznacheev
Reviewers: vegorov_chromimum.org, Description: Merge r5518 into 2.3 branch. Fix assertion failure in NormalizedMapCache. Please review this at http://codereview.chromium.org/3501007/show SVN Base: http://v8.googlecode.com/svn/branches/2.3/ Affected files: M src/objects-debug.cc M

[v8-dev] Re: Merge r5518 into 2.3 branch. (issue3501007)

2010-09-24 Thread kaznacheev
http://codereview.chromium.org/3501007/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Merge r5518 into 2.3 branch. (issue3501007)

2010-09-24 Thread kaznacheev
http://codereview.chromium.org/3501007/show -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Merge r5518 into 2.3 branch. (issue3501007)

2010-09-24 Thread kaznacheev
Thanks, committing. http://codereview.chromium.org/3501007/diff/13002/10003 File src/objects-inl.h (right): http://codereview.chromium.org/3501007/diff/13002/10003#newcode2270 src/objects-inl.h:2270: On 2010/09/24 10:19:43, Vyacheslav Egorov wrote: there is something odd with blank lines here.

[v8-dev] Implemented missing instructions in ia32 and x64 disassembler.... (issue3471011)

2010-09-24 Thread kaznacheev
Reviewers: Lasse Reichstein, Message: Hi Lasse, While debugging r5515 (dec_b support to ia32 and x64 disassembler) I noticed quite a few "Unimplemented instruction" lines in the code. I fixed that (at least nothing unimplemented shows up for sunspider tests). Please take a look, I might be doi

[v8-dev] Implemented missing instructions in ia32 and x64 disassembler.... (issue3471011)

2010-09-24 Thread kaznacheev
Reviewers: Lasse Reichstein, Message: Hi Lasse, While debugging r5515 (dec_b support to ia32 and x64 disassembler) I noticed quite a few "Unimplemented instruction" lines in the code. I fixed that (at least nothing unimplemented shows up for sunspider tests). Please take a look, I might be doi

[v8-dev] Re: Implemented missing instructions in ia32 and x64 disassembler.... (issue3471011)

2010-09-24 Thread kaznacheev
Thanks for the review! Submitting. http://codereview.chromium.org/3471011/diff/1/3 File src/x64/disasm-x64.cc (right): http://codereview.chromium.org/3471011/diff/1/3#newcode1116 src/x64/disasm-x64.cc:1116: current += PrintOperands("cvttss2si", REG_OPER_OP_ORDER, current); This was the first th

[v8-dev] Fine-tune inobject slack tracking.... (issue3595002)

2010-09-30 Thread kaznacheev
Reviewers: Vitaly, antonm, Description: Fine-tune inobject slack tracking. The current parameters (initial slack = 6, kGenerousAllocationsCount = 16) caused 15-20% performance regression on 3d-raytrace on x64 (visible both in standalone shell and in the web harness). This is very likely some kin

[v8-dev] Fix property array length calculation in TransformPropertiesToFastFor.... (issue3584004)

2010-10-01 Thread kaznacheev
Reviewers: Rico, Description: Fix property array length calculation in TransformPropertiesToFastFor. It was silently assumed that inobject_properties value is not too large. Recent introduction of inobject slack tracking made the assumption false and debug tests with no snapshot failed. Please

[v8-dev] Implementing inline caches for GenericBinaryOpStub. ... (issue551093)

2010-01-21 Thread vladislav . kaznacheev
Reviewers: Kevin Millikin, Mads Ager, Description: Implementing inline caches for GenericBinaryOpStub. There are 3 fast cases: HeapNumber operands, String operands and Object operands. This CL implements it for ia32 only. Please review this at http://codereview.chromium.org/551093 SVN Base: htt

[v8-dev] Re: Implementing inline caches for GenericBinaryOpStub. ... (issue551093)

2010-01-21 Thread vladislav . kaznacheev
http://codereview.chromium.org/551093 -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev

[v8-dev] Re: Implementing inline caches for GenericBinaryOpStub. ... (issue551093)

2010-01-22 Thread vladislav . kaznacheev
I have addressed all the comments. Now I will split this CL into two as Mads suggested: one dealing with registers/smis improvements, another dealing with ICs. http://codereview.chromium.org/551093/diff/1/3 File src/ia32/codegen-ia32.cc (right): http://codereview.chromium.org/551093/diff/1/3

[v8-dev] Re: Removing BinaryOpIC::Clear. This method relied on some less-than-obvious hack... (issue1623005)

2010-04-08 Thread Vladislav Kaznacheev
ARM codegen currently does not have binary op ICs in trunk. My change got reverted when it broke debug tests. The funny thing is: BinaryOpIC::Clear was the reason. I am re-submitting ARM change today with this issue fixed. Vlad On Thu, Apr 8, 2010 at 5:36 PM, wrote: > LGTM, thanks! > > Isn't

[v8-dev] Re: Re-submitting binary op ICs for ARM. Does not break debug tests (issue1629008)

2010-04-08 Thread Vladislav Kaznacheev
That and a change in BinaryOpIC::GetTypeInfo that also have been breaking debug tests. On Thu, Apr 8, 2010 at 7:12 PM, wrote: > > LGTM, I suppose the only change to the previous submit is the removal of the > clearing on GC? > > http://codereview.chromium.org/1629008/show -- v8-dev mailing list

  1   2   >