- 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 2 commits
-
-
karlklose@chromium.org authored
Review URL: http://codereview.chromium.org/7187007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
-
svenpanne@chromium.org authored
* AST Expression nodes get a separate testing ID to record type info in ToBooleanStub later. This is necessary to avoid clashes with other uses of already existing IDs. * In order to avoid threading the condition expression through tons of places, TestContexts carry it now with them. Note that we will probably only need the testing ID of the expression, but having the whole thing at hand makes debugging easier. Probably we will change this later... Review URL: http://codereview.chromium.org/7046073 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8274 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
-
- 07 Jun, 2011 1 commit
-
-
mikhail.naganov@gmail.com authored
Mainly, there were errors concerning blank lines before and after class access control sections [whitespace/blank_line]. BEFORE an access control section (e.g. public:, private:) there should be a blank line (except for the section right after the class declaration). AFTER an access control section there should be no blank line. TBR=ager@chromium.org git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 31 May, 2011 1 commit
-
-
svenpanne@chromium.org authored
Almost all uses were below Expression already, only a single use in IfStatement had to be handled explicitly (probably an oversight from earlier changes?). This is a small step towards a less ad-hoc handling of IDs in the front end. Review URL: http://codereview.chromium.org/7054034 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8118 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
-
- 06 May, 2011 1 commit
-
-
svenpanne@chromium.org authored
header which uses BASE_EMBEDDED and/or AllStatic. Note that still only 45 out of 135 headers in src/ can be used stand-alone, but at least this is a little bit more than before... Review URL: http://codereview.chromium.org/6931031 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7798 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
-
- 28 Apr, 2011 1 commit
-
-
svenpanne@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7707 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
-
- 12 Apr, 2011 1 commit
-
-
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
-
- 08 Apr, 2011 1 commit
-
-
mmaly@chromium.org authored
- mutual inlining strict and non-strict functions in crankshaft. - assignment to undefined variable with eval in scope. - propagation of strict mode through lazy compilation. BUG= TEST=test/mjsunit/strict-mode.js test/mjsunit/strict-mode-opt.js Review URL: http://codereview.chromium.org/6814012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Apr, 2011 4 commits
-
-
whesse@chromium.org authored
BUG= TEST= Review URL: http://codereview.chromium.org/6691058 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
fschneider@chromium.org authored
Instead of adding an extra AST node we can just use an auxiliary bailout id for named and keyed property count operations. Review URL: http://codereview.chromium.org/6810015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Apr, 2011 4 commits
-
-
ager@chromium.org authored
Crankshaft is now the default on all platforms. This is the first patch on the way to removing the classic code generator from the system. This time with no removal of the crankshaft flag. --nocrankshaft is not at all the same as --always-full-compiler which I had used instead for testing. That was what caused timeouts on the buildbots because of repeated attempts to optimize hot functions. It makes sense to keep the crankshaft flag in case you want to run only with the full compiler and with no adaptive compilation. R=vitalyr@chromium.org Review URL: http://codereview.chromium.org/6759070 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
This reverts r7469 which might have caused the timeouts on the buildbot. TBR=ager@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org//6788009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7481 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. 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
-
ager@chromium.org authored
Crankshaft is now the default on all platforms. This is the first patch on the way to removing the classic code generator from the system. R=kmillikin@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/6771045 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Mar, 2011 2 commits
-
-
fschneider@chromium.org authored
This allows fast calls and inlining of functions like: var o = {f: function() { return "foo"; }} o.f(); Object literals that contain function literals are initially created a dictionary mode object and only transformed to fast properties once all properties are computed and added. This allows us to create constant function properties for functions declared inside the object literal. Function literals inside object literals are marked for pretenuring so that they work as contant function properties. Object literals without functions should just function as before. Review URL: http://codereview.chromium.org/6240012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
- 07 Mar, 2011 1 commit
-
-
mmaly@chromium.org authored
Move strict mode flag from TemporaryScope to Scope so that it can be accessed from variable binding code. Arguments do not alias in strict mode (ia32, x64 and arm, codegen and full codegen). Hydrogen tolerates null arguments_shadow(). In codegen-<arch> arguments object is allocated eagerly to capture values before they get modified. Review URL: http://codereview.chromium.org/6625048/ git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7083 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
-