lrn@chromium.org
4f1e60cc75
Revert r8516.
...
Revision 8516 contained a temporary hack that doesn't work on Windows.
TBR: ricow
Review URL: http://codereview.chromium.org/7298008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 15:44:21 +00:00
lrn@chromium.org
b6779044c9
Add duplicate parameter detection to preparser.
...
Add tests for duplicate properties of object initialisers to preparser.
TEST=preparser
Review URL: http://codereview.chromium.org/7168016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 13:46:52 +00:00
fschneider@chromium.org
5a236ce6fd
Add support for hydrogen control instructions with >2 successor blocks.
...
This change makes the number of successors of a control instruction
configurable with a template parameter and changes the existing instructions
to use it.
To iterate over all successors I added an iterator instead of always calling
First- and SecondSuccessor.
Review URL: http://codereview.chromium.org/7114004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 12:09:48 +00:00
karlklose@chromium.org
799c3e92b9
ARM: Add optimization for constant RHS in DoMulI.
...
Patch by ARM Ltd.
Review URL: http://codereview.chromium.org/7027033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 07:47:21 +00:00
ager@chromium.org
6f775f2fb0
Fix calls of strict mode function with an implicit receiver.
...
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
2011-05-24 14:01:36 +00:00
kmillikin@chromium.org
d0fcbb4ece
Simplify include dependencies.
...
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
2011-05-03 08:23:58 +00:00
vitalyr@chromium.org
a9ea3f98b0
ll_prof: Reduce profiling hooks overhead from >400% to 25%.
...
Switched to using binary low-level log instead of the textual log used
by the ticks processor. The binary log contains code-related events,
code object names, and their bodies. When writing to the log we ask
glibc to use a larger buffer. To avoid complex processing of the
snapshot log (which is still textual) the serializer emits final
snapshot position to code name mappings that can be quickly be read
without replaying the snapshot log. (This might be useful for the
ticks processor.)
Review URL: http://codereview.chromium.org/6904127
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7729 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 16:06:25 +00:00
karlklose@chromium.org
bb1fe3ed9c
Revert revision 7582.
...
The changes caused mozilla date test failures on ARM.
TBR=ager
Review URL: http://codereview.chromium.org/6833020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 08:00:59 +00:00
karlklose@chromium.org
72fff00e48
ARM: Add optimization for constant RHS in DoMulI.
...
Patch by ARM Ltd.
Review URL: http://codereview.chromium.org/6756033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 06:44:15 +00:00
karlklose@chromium.org
12615106d7
Revert r7288.
...
TBR=ager
Review URL: http://codereview.chromium.org/6709060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 16:10:05 +00:00
karlklose@chromium.org
93d4776d46
ARM: Add optimization for constant RHS in DoMulI.
...
Patch by ARM Ltd.
Review URL: http://codereview.chromium.org/6708025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 14:31:15 +00:00
vitalyr@chromium.org
b604befe61
Always inline BitCast.
...
Review URL: http://codereview.chromium.org/6688064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7278 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 09:59:29 +00:00
vegorov@chromium.org
2c93e885f3
Switch from template functions overloading to partial template specialization.
...
This should fix compilation on old GCC.
Review URL: http://codereview.chromium.org/6350012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-01 20:47:53 +00:00
lrn@chromium.org
c9928c0595
Change scanner buffers to not use utf-8.
...
Make preparser keep its symbol text itself instead of relying on the scanner.
Review URL: http://codereview.chromium.org/6075005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 20:14:19 +00:00
kasperl@chromium.org
90b3370374
Update V8 to version 3.0 (re-land r5920).
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:31:57 +00:00
kasperl@chromium.org
51b494d096
Revert r5920. Will re-land shortly.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:01:02 +00:00
kasperl@chromium.org
e5860bd6a8
Update V8 to version 3.0.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 09:11:56 +00:00
mikhail.naganov@gmail.com
1cfc63cf8a
New heap profiler: implement fast retaining sizes approximation.
...
Approximation is done by building a dominators tree for the heap graph.
Dominator nodes and retained sizes are serialized into JSON.
Removed:
- reachable size (it is useless, after all);
- HeapEntryCalculatedData (size is now stored in the node, retaining
paths in a hash map);
Review URL: http://codereview.chromium.org/5154007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-22 14:00:40 +00:00
lrn@chromium.org
af7b6fecfe
Split globals.h into two parts, where only one depends on V8.
...
Made allocation.{h,cc} independent of V8, allowing utils.h to allocate
vectors and collectors.
Review URL: http://codereview.chromium.org/5005001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-15 13:23:30 +00:00
lrn@chromium.org
8f8039574a
Split utils.h into utils.h and v8utils.h where the former is independent of V8.
...
The code in utils.h can be reused outside of v8 propert, as long as the
propert ASSERT macros are defined.
Review URL: http://codereview.chromium.org/4485001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-05 08:18:53 +00:00
erik.corry@gmail.com
d46fb9d454
New attempt to make the allocation routines 64 bit clean.
...
This one has been approved by the 64 bit compiler in MSVC
2005 so I hope it also passes the 2008 version.
The --max-new-space-size option is now in kBytes.
The --max-old-space-size option is now in MBytes.
Some issues remain with 64 bit heaps and the counters. See
http://code.google.com/p/v8/issues/detail?id=887
Review URL: http://codereview.chromium.org/3573005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-30 07:22:53 +00:00
erik.corry@gmail.com
2d0c23bc82
Revert attempt to make heap size 32/64 clean. This change needs to
...
be done from Windows where the compiler is stricter about truncating
changes.
Review URL: http://codereview.chromium.org/3454035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-28 12:49:25 +00:00
erik.corry@gmail.com
d6313dbbb7
More changes to 32/64 bit correctness.
...
TBR=vegorov
Review URL: http://codereview.chromium.org/3412038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-28 12:18:19 +00:00
erik.corry@gmail.com
28d7064856
More correctness around PrintF and 32/64 bit values.
...
Fix test after 64 bit heap size change.
Review URL: http://codereview.chromium.org/3432032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-28 11:44:30 +00:00
lrn@chromium.org
cb514b72db
Made predata smaller by storing symbol data in variable length base-128.
...
Remove position from symbol data - they must come in the correct order anyway.
Review URL: http://codereview.chromium.org/3384003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-15 10:54:35 +00:00
lrn@chromium.org
7b89a5f2b8
Reordered function entries in PreParse data to be ordered by start position.
...
Also add skip to entry, to skip pre-data for the body of the function.
Preparser data is now only accessed linearly, in the same order it was created.
Review URL: http://codereview.chromium.org/3185026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 08:26:29 +00:00
lrn@chromium.org
23d0abb040
Ensure that scanner state is correctly reset when an error is encountered.
...
Add a scope object to ensure that leaving a literal scanning prematurely
will clean up after itself.
Also reset the literal buffer if a scanner is reinitialized with a new
source code.
Review URL: http://codereview.chromium.org/3137037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 12:29:50 +00:00
lrn@chromium.org
b1e27e2cd5
Created collector class and used it to collect identifiers during scanning.
...
The collector class automatically expands to hold the values added to it,
like a List, but doesn't ensure that the backing store is contiguous, which
allows it to avoid copying back and forth as the buffer grows.
This is in preparation for identifyng identical symbols during preparsing.
Review URL: http://codereview.chromium.org/3181036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 10:53:44 +00:00
ager@chromium.org
9d5a72673a
Fix indentation in utils.h.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-19 08:49:26 +00:00
ager@chromium.org
cc475ecf47
Landing for Ryan Dahl.
...
Remove const from BitCast.
Fixes build for old GCCs.
Review URL: http://codereview.chromium.org/3130033/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-19 08:14:29 +00:00
lrn@chromium.org
abcf1012c6
Allow compiling with strict aliasing enabled on GCC 4.4.
...
Patch by Jay Freeman.
Fixes issue 463.
Review URL: http://codereview.chromium.org/3117007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-11 10:52:34 +00:00
sandholm@chromium.org
4695ef1a09
Change kMinComplexMemCopy to 64 for IA32. It's just better.
...
Review URL: http://codereview.chromium.org/2818028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 11:21:58 +00:00
erik.corry@gmail.com
142de62819
ARM: Be more smart about switching instructions when immediates
...
don't fit in the instruction. Use ubfx and sbfx more.
Review URL: http://codereview.chromium.org/2826001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 11:20:36 +00:00
vegorov@chromium.org
53923e9233
Revert r4782. Fix issues 728, 732.
...
Review URL: http://codereview.chromium.org/2701003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 09:36:30 +00:00
lrn@chromium.org
d3d295efa7
Add optimized version of memcpy on ia32.
...
Only used in one place right now.
Still room for tweaking.
Review URL: http://codereview.chromium.org/2582001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 11:30:55 +00:00
antonm@chromium.org
1e744a3011
Turn some usages of NewArray with DeleteArray in the same scope into ScopedVector or SmartPointer.
...
That makes it easier to maintain the code---one should care less
about releasing the memory as smart pointers would take care of
this.
Switch to ScopedVector instead Vector for the same semantics in
src/builtins.cc
Review URL: http://codereview.chromium.org/1737023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-05 12:25:58 +00:00
vegorov@chromium.org
238b211274
Reapplying changes from r4318
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/1656003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-14 07:26:20 +00:00
vegorov@chromium.org
82ddab5fd5
Reverting r4318 (merge of scavenge into sweeping pass of MSC garbage collector)
...
Review URL: http://codereview.chromium.org/1622016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-09 08:16:25 +00:00
vegorov@chromium.org
6d3cdbbf98
Merging scavenge into sweeping phase of mark-sweep(-compact) collector.
...
Should reduce full GC pauses.
Review URL: http://codereview.chromium.org/1217011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-30 12:01:06 +00:00
antonm@chromium.org
69bb110075
Fix the case of no words to copy.
...
CopyWords cannot actually copy zero words---it'd clobber destiantion with
the first word of source.
Add an ASSERT to check this condition plus update array builtins to verify
for amount of copied data when necessary.
TBR=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/1559004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-29 22:07:52 +00:00
antonm@chromium.org
cd826b5c41
Refactor word copying logic.
...
Review URL: http://codereview.chromium.org/1530005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-29 18:02:06 +00:00
sgjesse@chromium.org
2d0c823305
Proper constraints for inline implementation in assembly.
...
Review URL: http://codereview.chromium.org/1359002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-26 07:58:24 +00:00
antonm@chromium.org
6405be71b9
Reenable ability to Dispose already Disposed Vector.
...
Review URL: http://codereview.chromium.org/1016006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-17 15:15:45 +00:00
antonm@chromium.org
c1597031bf
Properly release zero-length Vectors.
...
Review URL: http://codereview.chromium.org/987004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-17 14:42:01 +00:00
sgjesse@chromium.org
16bfc31317
Fix issues with compiling V8 with LLVM Clang
...
Added this-> in some places where accessing a method on a templated base class.
Added #include <strings.h> for bit_cast, moved it to utils.h and renamed it to BitCast.
Patch by Evan Martin <evan@chromium.org>, see http://codereview.chromium.org/894001 and http://codereview.chromium.org/888003
Review URL: http://codereview.chromium.org/888005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-12 10:20:01 +00:00
antonm@chromium.org
3051ba1a5b
Faster filling of arrays of holes.
...
Review URL: http://codereview.chromium.org/661105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-26 15:19:13 +00:00
vitalyr@chromium.org
945673574e
Improve string runtime compare performance for flat strings.
...
Review URL: http://codereview.chromium.org/650058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-25 12:49:23 +00:00
fschneider@chromium.org
ec86513519
Make class BitField able to use 32 bits of a uint32.
...
Although algorithmically correct, the compiler would not allow to instantiate
a BitField that uses all 32 bits without warnings about a too large shift
count. As a consequence we were limited to 31 bit values when using BitField.
This happened when instantiating a bitfield BitField<T, shift, size> with
[shift=0, size=32] or [shift=31, size=1] or more general any
[shift=X, size=32-X]
As side-effect of the new implementation the compiler now warns if we ever
try instantiating a bitfield with size 0.
Review URL: http://codereview.chromium.org/606063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-19 10:02:04 +00:00
mikhail.naganov@gmail.com
b740dea517
Kill some unused code.
...
It doesn't mean I'm participating in some fixit, just spotted some
code which doesn't have usages and decided to remove it.
Review URL: http://codereview.chromium.org/646007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-18 12:47:17 +00:00
sgjesse@chromium.org
eb4d261e24
Remove the different length string types
...
The different length string types was used to encode the string length and the hash in one field. This is now split into two fields one for length and one for hash. The hash field still encodes the array index of the string if it has one. If an array index is encoded in the hash field the string length is added to the top bits of the hash field to avoid a hash value of zero.
On 32-bit this causes an additional 4 bytes to be used for all string objects. On 64-bit this will be half on average dur to pointer alignment.
Review URL: http://codereview.chromium.org/436001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-24 14:10:06 +00:00