- 04 Jan, 2013 1 commit
-
-
svenpanne@chromium.org authored
This reduces the time to run our test suite in debug mode considerably (from 8:43 to 4:05 on my local workstation using 32 threads). Note that the assertion is so fast now that it doesn't need to be hidden behind --enable-slow-asserts. Furthermore, the bookkeeping of the set is not measurable in all our benchmarks, so I intentionally avoided any #ifdef chaos to keep things simple. Review URL: https://codereview.chromium.org/11745027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Dec, 2012 1 commit
-
-
danno@chromium.org authored
R=jkummerow@chromium.org Review URL: https://chromiumcodereview.appspot.com/11528003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Dec, 2012 1 commit
-
-
danno@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/11498006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Dec, 2012 1 commit
-
-
danno@chromium.org authored
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure. Committed: https://code.google.com/p/v8/source/detail?r=13105 Committed: https://code.google.com/p/v8/source/detail?r=13117 Review URL: https://codereview.chromium.org/10701054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Dec, 2012 2 commits
-
-
danno@chromium.org authored
TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/11415261 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure. Committed: https://code.google.com/p/v8/source/detail?r=13105 Review URL: https://codereview.chromium.org/10701054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Nov, 2012 2 commits
-
-
danno@chromium.org authored
TBR=jkummerow@chromium.org Review URL: https://codereview.chromium.org/11414262 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure. Review URL: https://codereview.chromium.org/10701054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Jul, 2012 2 commits
-
-
sanjoy@chromium.org authored
Rename LChunkBase to LChunk, LChunk to LPlatformChunk and remove some unneeded explicit constructor attributes. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10701157 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sanjoy@chromium.org authored
Crankshaft now runs by calling CreateGraph on the HGraphBuilder, then calling Optimize and Codegen on the HGraph. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10700115 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Jun, 2012 1 commit
-
-
sanjoy@chromium.org authored
By passing around a Zone object explicitly we no longer need to do a TLS access at the sites that allocate memory from the current Zone. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10534006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Feb, 2012 1 commit
-
-
fschneider@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/9416092 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Feb, 2012 1 commit
-
-
fschneider@chromium.org authored
Pass the zone explicitly to avoid calling Isolate::Current()->zone(). Review URL: https://chromiumcodereview.appspot.com/9430002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Feb, 2012 1 commit
-
-
fschneider@chromium.org authored
1. Instead of checking upfront and estimating a limit for the number, we now are able to stop register allocation and bailout when we don't have enough virtual registers. 2. GCed some out-dated flags from flag-definition.h 3. Simplified the interface from the Lithium builder to the register allocator in lithium-*.cc: For uses and definitions, we just record the virtual register number given by the Hydrogen value id. For temporaries, we request a new virtual register from the allocator. For fixed temps, we don't need to do anything. 4. Increased number of deoptimization entries to 16K. Eventually we probably want to make this array grow dynamically. Review URL: https://chromiumcodereview.appspot.com/9325019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Nov, 2011 1 commit
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/8462016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Jun, 2011 1 commit
-
-
kmillikin@chromium.org authored
The Advance() function of the class responsible for iterating environment uses didn't always advance as far as it could (relying on the HasNext predicate to finish advancing). This is brittle. The HasNext predicate also didn't advance as far as it could when it was at the end of an environment level. This is a bug. R=jkummerow@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/6993023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8181 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
-
- 03 May, 2011 1 commit
-
-
kmillikin@chromium.org authored
Try to make sure that accessors.h, data-flow.h, list-inl.h, and scopeinfo.h are included only where needed, but without introducing implicit dependencies. Review URL: http://codereview.chromium.org/6903175 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7756 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
-
- 10 Mar, 2011 1 commit
-
-
fschneider@chromium.org authored
Also replace fixed length zone lists with embedded vectors for the fixed live ranges. Review URL: http://codereview.chromium.org/6660023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Feb, 2011 1 commit
-
-
fschneider@chromium.org authored
When printing the sub-parts of a live range, only print the use intervals belonging to each part. Add a flag to print all use positions (incl. environment uses) Review URL: http://codereview.chromium.org/6566005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Feb, 2011 1 commit
-
-
fschneider@chromium.org authored
Instead of constructing a temporary container for all LOperands of each instruction, the register works directly on the LIR instructions that provide an abstract interface for input/output/temp operands. This saves allocation of zone memory and speeds up LIR construction, but makes iterating over all uses in the register allocator slightly more expensive because environment uses are stored in a linked list of environments. We can fix this by using a flat representation of LOperands. Review URL: http://codereview.chromium.org/6352006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6355009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6378004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jan, 2011 1 commit
-
-
kmillikin@chromium.org authored
Instead of spilling and then immediately restoring eax to resolve memory to memory moves, the gap move resolver now tracks registers that are known to be free and uses one if available. If not it spills but restores lazily when the spilled value is needed or at the end of the algorithm. Instead of using esi for resolving cycles and assuming it is free to overwrite because it can be rematerialized, the gap move resolver now resolves cycles using swaps, possibly using a free register as above. The algorithm is also changed to be simpler: a recursive depth-first traversal of the move dependence graph. It uses a list of moves to be performed (because it mutates the moves themselves), but does not use any auxiliary structure other than the control stack. It does not build up a separate list of scheduled moves to be interpreted by the code generate, but emits code on the fly. Review URL: http://codereview.chromium.org/6263005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jan, 2011 1 commit
-
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/6326003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
This change introduces LTemplateInstruction which is a specialized version of LInstruction and takes one template parameter to indicate whether the instruction produces a result operand. All instruction that do not have a result inherit from LTemplateInstruction<0>. Instructions that have a result operand from LTemplateInstruction<1> All the Define* function only operate on instructions with a result. For this to work I also refactored the places where we do LInstruction* result = new Lxyy into Lxyz* result = new Lxyz Review URL: http://codereview.chromium.org/6219001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Jan, 2011 1 commit
-
-
sgjesse@chromium.org authored
If the instance of is performed against what is beliwed to be a constant global function inline the instance of check and have the call to the instanceof stub in deferred code. The inlined check will be patched by the instanceof stub when called from deferred code. This is indicated by the lithium instruction LInstanceOfKnownGlobal. To help the patching the delta from the return address to the patch site is placed just below the return address in the edi slot of the pushad/popad ares. This is safe because the edi register (which is pushed last) is a temporary for the lithium instruction. As the instanceof stub can call other JavaScript an additional marking for saving all double registers have been added. Also tweaked the instanceof stub to produce true/false objects instead of 0/1 for the case with deferred code. Review URL: http://codereview.chromium.org/5990005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
DefineSameAsAny is never used and currently does exactly the same as DefineSameAsFirst. Review URL: http://codereview.chromium.org/6025014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Jan, 2011 1 commit
-
-
vegorov@chromium.org authored
Review URL: http://codereview.chromium.org/6065010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Dec, 2010 1 commit
-
-
vegorov@chromium.org authored
SplitBetween (formely known as Split with 3 arguments) should select split position from [start, end] instead of [start, end[. This should also improve allocation quality (remove certain redundant move patterns). Also some minor renaming and refactoring to make register allocator code more readable. BUG=v8:962 TEST=test/mjsunit/regress/regress-962.js Review URL: http://codereview.chromium.org/5720001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Dec, 2010 3 commits
-
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-