- 24 Jun, 2011 1 commit
-
-
keuchel@chromium.org authored
Detect the pattern in both, the full compiler and crankshaft and generate direct pointer comparisons. Along the way I cleaned up 'typeof <expression> == <string literal>' comparisons as well by lifting platform independent code and checking the symmetric case. BUG=v8:1440 TEST=cctest/test-api.cc Review URL: http://codereview.chromium.org/7216008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jun, 2011 1 commit
-
-
jkummerow@chromium.org authored
Review URL: http://codereview.chromium.org/7170012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jun, 2011 1 commit
-
-
erik.corry@gmail.com authored
report, but was not general enough to catch all cases. This is a new approach. Includes regression test! Review URL: http://codereview.chromium.org/7193007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Jun, 2011 1 commit
-
-
karlklose@chromium.org authored
This reverts commit ceb31498b9d69edca3260820fb4047045891ce6d. TBR=kmillikin@chromium.org Review URL: http://codereview.chromium.org/7172030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Jun, 2011 2 commits
-
-
erik.corry@gmail.com authored
http://code.google.com/p/v8/issues/detail?id=1472 Review URL: http://codereview.chromium.org/7170014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
karlklose@chromium.org authored
Review URL: http://codereview.chromium.org/7167006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jun, 2011 1 commit
-
-
fschneider@chromium.org authored
This change fixes the deoptimization when a keyed load is used with a symbol key. Before we would wrongly generate a fast elements load. Now we generate a generic keyed load instead. BUG=1471 Review URL: http://codereview.chromium.org/7150010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Jun, 2011 2 commits
-
-
danno@chromium.org authored
Dispatch on ElementsKind rather than ExternalArrayType when generating ICs and Crankshaft code for many element operations. This is preparation to be able to share more code in the various element accessor implementations. Merge logic to maintain external array and fast element stub caches. BUG=none TEST=none Review URL: http://codereview.chromium.org/7112010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Introduce separate maps for function and with contexts. Use the function context map for testing whether a context is a function context (global contexts are no longer function contexts). Split the paths for allocating with and catch contexts. Rename some functions. Generally refactor code to make it simpler. R=ager@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7003058 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Jun, 2011 1 commit
-
-
kmillikin@chromium.org authored
The AST for TryCatch gives us enough structure that we do not need to expand it to explicitly include a with. Try/catch is still handled the same as before at runtime. R=ager@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7134014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Jun, 2011 1 commit
-
-
kmillikin@chromium.org authored
Processing the declarations in an inlining candidate must be performed after constructing the Hydrogen environment of the candidate function. R=fschneider@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7027028 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 May, 2011 1 commit
-
-
kmillikin@chromium.org authored
Our implementations of arguments without materializing the arguments object (based on inspecting the stack frame) does not work for inlined functions. Guard all attempts by disallowing them if possible or else bailing out of the optimizing compiler. R=fschneider@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/6976022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 May, 2011 1 commit
-
-
ager@chromium.org authored
Only IA32 version for now. I'll start porting. Strict mode functions are to get 'undefined' as the receiver when called with an implicit receiver. Modes are bad! It forces us to have checks on all function calls. This change attempts to limit the cost by passing information about whether or not a call is with an implicit or explicit receiver in ecx as part of the calling convention. The cost is setting ecx on all calls and checking ecx on entry to strict mode functions. Implicit/explicit receiver state has to be maintained by ICs. Various stubs have to not clobber ecx or save and restore it. CallFunction stub needs to check if the receiver is implicit when it doesn't know from the context. Review URL: http://codereview.chromium.org/7039036 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Apr, 2011 1 commit
-
-
whesse@chromium.org authored
BUG= TEST= Review URL: http://codereview.chromium.org/6880312 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Apr, 2011 1 commit
-
-
whesse@chromium.org authored
BUG= TEST= Review URL: http://codereview.chromium.org/6902066 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Apr, 2011 1 commit
-
-
karlklose@chromium.org authored
BUG=1337 TEST=regress-1337 Review URL: http://codereview.chromium.org/6881079 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Apr, 2011 1 commit
-
-
fschneider@chromium.org authored
After Kevin's change to the graph builder to allow aborting graph construction inside arbitrary expressions this just works. BUG=v8:1143 Review URL: http://codereview.chromium.org/6839017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Apr, 2011 2 commits
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6813107 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Before we had a white-list of things that we allow inside inlined functions. This way we can enable new constructs one-by-one. Review URL: http://codereview.chromium.org/6825042 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Apr, 2011 2 commits
-
-
ager@chromium.org authored
- virtual-frame* - register-allocator* - jump-target* - most of codegen* - AstOptimizer and fields on AST There is a lot of additional cleanup that we should do but this gets rid of a lot. R=kmillikin@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/6811012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
Fix opmitized external array access for compound assignments and count operations, also implement missing ARM typed array Hydrogen loads and stores. BUG=none TEST=none Review URL: http://codereview.chromium.org/6805005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Apr, 2011 1 commit
-
-
sgjesse@chromium.org authored
In the cases where a global property cell cannot be used in the optimized code use standard load ic to get the property instead of bailing out. This is re-committing r7212 and r7215 which where reverted in r7239 with the addition of recoring the source position in the hydrogen code for the LoadGlobalCell instruction. To record that position an optional position field has been added to the variable proxy AST node. Review URL: http://codereview.chromium.org/6758007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Mar, 2011 1 commit
-
-
ager@chromium.org authored
R=vitalyr@chromium.org Review URL: http://codereview.chromium.org/6717018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Mar, 2011 1 commit
-
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/6688066 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Mar, 2011 3 commits
-
-
vitalyr@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/6685088 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Mar, 2011 2 commits
-
-
ricow@chromium.org authored
This caueses line positions to be off by one in certain cases, causing webkit http/tests/inspector/console-xhr-logging to fail. Review URL: http://codereview.chromium.org/6667077 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
In the cases where a global property cell cannot be used in the optimized code use standard load ic to get the property instead of bailing out. Review URL: http://codereview.chromium.org/6665026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Mar, 2011 1 commit
-
-
vitalyr@chromium.org authored
This allows more efficient implementations of string keyed access, String.prototype.chatAt, and String.fromCharCode. Review URL: http://codereview.chromium.org/6682025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Mar, 2011 2 commits
-
-
danno@chromium.org authored
Worth mentioning: - Specialized versions of pixel array and store/loads inside the generic stubs have been removed, since to have parity for all external arrays, 8 different versions would have to be inlined/checked. - There's a new constant in v8.h for external arrays with pixel array elements. Review URL: http://codereview.chromium.org/6546036 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Refactor construction of switch statements so it doesn't use class HSubgraph. There are also a few improvements. We do not use an auxiliary list of comparisons because they're embedded as a linked list in the graph under construction. We share a common break block for all breaks from the same switch. We do not insert empty blocks unless necessary to maintain edge-split form. There is also a bug fix. The entry to a clause body is a potential join and must have a join ID set, otherwise deoptimization within the body can go to an unpredictable place in the unoptimized code. Review URL: http://codereview.chromium.org/6650021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Feb, 2011 1 commit
-
-
fschneider@chromium.org authored
In the case where the function is not found in the global object, we have to generate a generic call. BUG=v8:1106 TEST=mjsunit/regress/regress-1106.js Review URL: http://codereview.chromium.org/6483010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Feb, 2011 1 commit
-
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/6410028 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6135004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6514 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Jan, 2011 3 commits
-
-
vitalyr@chromium.org authored
To avoid deopts a few extra changes were needed: o Enable megamorphic state for special property loads on primitives. We used to flip between monomorphic stubs. o Extract pure string (no string wrapper support) version of the string length stub. Review URL: http://codereview.chromium.org/6334015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
Code generated for checks starting with primitive receivers skips one step in the usual prototype checking algorithm, so the holder must always be set. Not setting the holder did not cause an immediate failure because our primitives have additional hidden prototypes before the real prototypes. These extra objects in the chain usually contain no properties and so allowed the right holders to be selected. Review URL: http://codereview.chromium.org/6353014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
We allow symbols that are array indices. Review URL: http://codereview.chromium.org/6304016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Jan, 2011 1 commit
-
-
vitalyr@chromium.org authored
This patch adds H- and L-variants of StringCharCodeAt and StringLength. StringCharCodeAt is used to inline a constant function call of String.prototype.charCodeAt and to implement the corresponding inline runtime function. It does not yet use the recently introduced extra IC state. (We can specialize on string encoding and avoid deopts because of out of bounds accesses.) StringLength needs more work because the stub version of it also supports strings wrappers and it matters in some cases. (We have to separate the string only case.) Review URL: http://codereview.chromium.org/6243008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jan, 2011 1 commit
-
-
antonm@chromium.org authored
Currently only closures which only read from the context are supported. Review URL: http://codereview.chromium.org/5753005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-