rossberg@chromium.org
d7539af89a
Fix cast warning on Win32
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12385046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 14:31:01 +00:00
rossberg@chromium.org
090d09d685
ES6 symbols: Implement Symbol intrinsic and basic functionality
...
- Add --harmony-symbols flag.
- Add Symbol constructor; allow symbols as (unreplaced) return value from constructors.
- Introduce %CreateSymbol and %_IsSymbol natives and respective instructions.
- Extend 'typeof' code generation to handle symbols.
- Extend CompareIC with a UNIQUE_NAMES state that (uniformly) handles internalized strings and symbols.
- Property lookup delegates to SymbolDelegate object for symbols, which only carries the toString method.
- Extend Object.prototype.toString to recognise symbols.
Per the current draft spec, symbols are actually pseudo objects that are frozen with a null prototype and only one property (toString). For simplicity, we do not treat them as proper objects for now, although typeof will return "object". Only property access works as if they were (frozen) objects (via the internal delegate object).
(Baseline CL: https://codereview.chromium.org/12223071/ )
R=mstarzinger@chromium.org
BUG=v8:2158
Review URL: https://codereview.chromium.org/12296026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 13:28:55 +00:00
hpayer@chromium.org
74b6f0f321
Fix Win64 compilation problem.
...
BUG=
Review URL: https://codereview.chromium.org/12379043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 12:46:20 +00:00
mstarzinger@chromium.org
05f1be1bb3
Unify deoptimizer for accessor and arguments frames.
...
This unifies the translation of artificial accessor stub and arguments
adaptor frames. The frame layout is the same on all architectures and
the computation code can be shared.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/12374044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 12:23:24 +00:00
rossberg@chromium.org
764e1a0fcf
ES6 symbols: Introduce Symbol class, along with abstract Name class
...
The new instance type 'Symbol' represents ES6 symbols (a.k.a. private/unique names). Currently, symbols are simple data objects that only carry a hash code, random-generated upon allocation.
The new type 'Name' now serves as the common super class for strings and symbols, and is supposed to represent property names. We will eventually migrate APIs from String to Name for the standard key type.
Strings and symbols share the same hash field representation, via the Name class. This way, we should be able to use the same code paths for symbols and internalized strings in most cases. Also, Symbol's instance type code is allocated adjacent to internalized string codes in the enum, allowing a simple range check for the common case.
Baseline CL: https://codereview.chromium.org/12210083/
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12223071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 10:34:31 +00:00
yangguo@chromium.org
922efe43ed
Simplify line editor choice in d8.
...
R=rossberg@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12330171
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 17:40:24 +00:00
rossberg@chromium.org
55f93b5532
Renamed "symbols" to "internalized strings" throughout the code base,
...
in preparation of the introduction of ES6 'symbols' (aka private/unique names).
The SymbolTable became the StringTable. I also made sure to adapt all comments. The only remaining use of the term "symbol" (other than unrelated uses in the parser and such) is now 'NewSymbol' in the API and the 'V8.KeyedLoadGenericSymbol' counter, changing which might break embedders.
The one functional change in this CL is that I removed the former 'empty_string' constant, since it is redundant given the 'empty_symbol' constant that we also had (and both were used inconsistently).
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12210083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 17:03:34 +00:00
hpayer@chromium.org
3b7417a506
Prepare push to trunk. Now working on version 3.17.7.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/12386022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 15:53:29 +00:00
hpayer@chromium.org
a2b216c47f
Turn off parallel and concurrent sweeping on system with just one processor/core.
...
BUG=
Review URL: https://codereview.chromium.org/12380020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 15:18:15 +00:00
hpayer@chromium.org
a9374e2fea
Set unswept free bytes for concurent sweeper.
...
BUG=
Review URL: https://codereview.chromium.org/12184016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 15:07:28 +00:00
rossberg@chromium.org
8924d03e16
Minor cleanup of CompareIC state
...
Allow transitioning from KNOWN_OBJECT to KNONW_OBJECT or OBJECT.
Also, rename HEAP_NUMBER IC states to NUMBER, since they handle Smis, too.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12254036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 14:43:57 +00:00
mstarzinger@chromium.org
b22c7eaed9
Revert "Reapply optimization of DeoptimizeIf for ia32." (r13767)
...
This optimization turns out to have a negative effect on i5 processors
throughout the board. This needs further investigation to figure out
the underlying reason but will be rolled out for now.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/12388016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 11:24:18 +00:00
yangguo@chromium.org
0e8a5fe4d8
Fix math.round with SSE4.1.
...
R=verwaest@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12388015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 10:39:34 +00:00
verwaest@chromium.org
5a543d683a
Order arguments of ComputeMonomorphicFlags to match ComputeFlags.
...
Review URL: https://chromiumcodereview.appspot.com/12226090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 15:33:37 +00:00
verwaest@chromium.org
3ab255f55d
Currently this mostly just moves code around.
...
- Later the different parts will become individual code objects that tailcall into one another.
- The mapcheck/symbol check still needs to be separated from the overall prototype-chain check so that the ICs can reuse the handlers.
Review URL: https://chromiumcodereview.appspot.com/12209021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 15:28:53 +00:00
mstarzinger@chromium.org
574dc38f96
Reapply optimization of DeoptimizeIf for ia32 broken in r13633.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/12340113
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 15:17:27 +00:00
yangguo@chromium.org
6e64bdfc6e
Insert conversion to string in string.replace.
...
(missing since r13761)
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12316158
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 15:12:30 +00:00
svenpanne@chromium.org
bfaf38d2fd
Miscellaneous profile-driven Isolate plumbing.
...
While doing this, it became clear that quite a few functions should not be
static and should better live in various classes as instance methods, but I'll
leave this for a later CL.
BUG=v8:2487
Review URL: https://codereview.chromium.org/12314152
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 14:45:59 +00:00
yangguo@chromium.org
2a3063a7c3
Handle negative input in inlined Math.round on Intel CPUs.
...
R=jkummerow@chromium.org
BUG=v8:2451
Review URL: https://chromiumcodereview.appspot.com/12342037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 14:44:57 +00:00
mstarzinger@chromium.org
ea5e9edac4
Fix materialization of arguments objects with unknown values.
...
This fixes the deoptimizer to materialize arguments objects of correct
length even in cases where the actual argument values are unknown and
were optimized away by Crankshaft. This can happen if only the length
property or the identity of an arguments object is used.
R=svenpanne@chromium.org
BUG=chromium:163530
TEST=mjsunit/regress/regress-crbug-163530
Review URL: https://codereview.chromium.org/12335132
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 14:37:51 +00:00
yangguo@chromium.org
7145671392
Make message listener API backwards compatible.
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12217066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 14:35:39 +00:00
yangguo@chromium.org
4cbe7100e6
Refactor implementation for String.prototype.replace.
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12177015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 14:14:45 +00:00
svenpanne@chromium.org
c26d100b10
Avoid TLS accesses in Object::Lookup and Object::GetPrototype.
...
Both methods were among the top causes for TLS accesses.
BUG=v8:2487
Review URL: https://codereview.chromium.org/12319144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 13:22:29 +00:00
hpayer@chromium.org
e819dd2869
Shrinking of PagedSpace is done only by sweeper.
...
BUG=
Review URL: https://codereview.chromium.org/12313131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 12:59:52 +00:00
hpayer@chromium.org
ddeaa4a3f2
Added system thread manager class.
...
BUG=
Review URL: https://codereview.chromium.org/12207207
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 12:55:55 +00:00
svenpanne@chromium.org
6e829ed485
Added Isolate parameter to CodeStub::GetCode().
...
According to gprof, this was the #1 cause for TLS access during an Octane run.
BUG=v8:2487
Review URL: https://codereview.chromium.org/12317141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 12:33:24 +00:00
svenpanne@chromium.org
6d5f0d8772
Avoid HEAP macro in spaces.cc
...
This was another top cause for TLS access.
BUG=v8:2487
Review URL: https://codereview.chromium.org/12340101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 12:30:23 +00:00
jkummerow@chromium.org
b3cb955c4f
Normalized map copies should not share code caches
...
Review URL: https://codereview.chromium.org/12328136
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 12:17:50 +00:00
ulan@chromium.org
d18e118f17
ARM: Fix disassembly of some VFP instructions with condition codes
...
Previously, we would disassemble some VFP instructions like this:
vmla.f64eq d16, d17, d18
This patch moves the condition to the right place:
vmlaeq.f64 d16, d17, d18
Spotted by Rodolph Perfetta!
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12335129
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 11:52:45 +00:00
jkummerow@chromium.org
610d78cd2c
Integer HConstants don't need to kDependsOnOsrEntries
...
Review URL: https://codereview.chromium.org/12299009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 11:40:25 +00:00
hpayer@chromium.org
6f8f82235f
Set default number of sweeper threads to two.
...
BUG=
Review URL: https://codereview.chromium.org/12301020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 10:35:34 +00:00
ulan@chromium.org
87265114c4
Emit VMLS for multiply-subtract on ARM.
...
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12319113
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 10:24:40 +00:00
mstarzinger@chromium.org
80dc769391
Prepare push to trunk. Now working on version 3.17.6.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/12342033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 09:28:05 +00:00
mstarzinger@chromium.org
aaada6e950
Fix SSE2 scope being too broad in DoCmpIDAndBranch.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/12321141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 18:12:27 +00:00
palfia@homejinni.com
56f507c580
MIPS: Combine %_SubString and %_StringCharAt.
...
Port r13700 (587dc7c1)
BUG=
Review URL: https://codereview.chromium.org/12310087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 17:48:14 +00:00
adamk@chromium.org
deeddc7e76
Remove duplication and unnecessary HandleScope from HasElement helper functions
...
Review URL: https://codereview.chromium.org/12328064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 17:20:21 +00:00
yurys@chromium.org
dc9b817667
Send SIGPROF signals on the profiler event processor thread
...
The patch is based on the previous one that was rolled out: https://code.google.com/p/v8/source/detail?r=12985
On Linux sampling for CPU profiler is initiated on the profiler event processor thread, other platforms to follow.
CPU profiler continues to use SamplingCircularQueue, we will replave it with a single sample buffer when Mac and Win ports support profiling on the event processing thread.
When --prof option is specified profiling is initiated either on the profiler event processor thread if CPU profiler is on or on the SignalSender thread as it used to if no CPU profiles are being collected.
ProfilerEventsProcessor::ProcessEventsAndDoSample now waits in a tight loop, processing collected samples until sampling interval expires. To save CPU resources I'm planning to change that to use nanosleep as only one sample is expected in the queue at any point.
BUG=v8:2364
Review URL: https://codereview.chromium.org/12321046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 16:15:32 +00:00
ulan@chromium.org
16e089367b
Visit stored context when iterating stack for optimized stub.
...
BUG=v8:2509
TEST=mjsunit/regress/regress-1125,NavierStokes fails on Nexus 10.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12314124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 14:24:16 +00:00
mstarzinger@chromium.org
7d681e014d
Compile FastCloneShallowObjectStub using Crankshaft.
...
This changes FastCloneShallowObjectStub to be compiled independent of
the target architecture. It also adds tracing to the deoptimizer for
compiled stubs and contains some minor bugfixes.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/12220074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 13:08:08 +00:00
yurys@chromium.org
d394f31d72
Use boolean instead of Atomic32 for is_profiling_ flag
...
The field is only accessed on the JS thread so it can be converted into bool.
BUG=None
Review URL: https://codereview.chromium.org/12340052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 12:27:55 +00:00
dcarney@chromium.org
52a015b1af
Fix overflow in WriteQuoteJsonString and SlowQuoteJsonString
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12326120
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 11:02:39 +00:00
mstarzinger@chromium.org
ce1e10f5fc
Make __proto__ a foreign callback on Object.prototype.
...
This moves the __proto__ property to Object.prototype and turns it into
a callback property actually present in the descriptor array as opposed
to a hack in the properties lookup. For now it still is a "magic" data
property using foreign callbacks and not an accessor property visible to
JavaScript.
The second effect of this change is that JSON.parse() no longer treats
the __proto__ property specially, it will be defined as any other data
property. Note that object literals still have their special handling.
R=rossberg@chromium.org
BUG=v8:621,v8:1949,v8:2441
TEST=mjsunit,cctest,test262
Review URL: https://codereview.chromium.org/12212011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 10:46:00 +00:00
yangguo@chromium.org
72b802f27a
Refactor RegExpStub to check lazily.
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12210143
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 09:53:07 +00:00
adamk@chromium.org
8f407c7b99
Move extensibility check to the top of Object.isFrozen/Object.isSealed
...
This speeds up isFrozen/isSealed checks on "normal" objects without
slowing down checks on frozen/sealed objects.
Though this ordering is not what ES5 specifies, the difference is not
observable (especially since the code bails out if the passed-in object
is a proxy).
Review URL: https://codereview.chromium.org/12340008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 19:44:21 +00:00
adamk@chromium.org
30a4a798e5
Speed up non-interceptor case of Object.getOwnPropertyNames
...
When there are interceptors on an object, it's possible to
end up with duplicate property names. But when all the names
are provided by v8, a collision is not possible, so we can
fast-path that case by not de-duping.
Also added better test coverage for interceptor API.
Review URL: https://codereview.chromium.org/12314081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 18:58:47 +00:00
ulan@chromium.org
cb5c8554c0
Debugger: ScopeMirror has N^2 algorithm when building closure mirrors. (take 2).
...
Review URL: https://chromiumcodereview.appspot.com/12326103
Patch from Pavel Feldman <pfeldman@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 16:46:54 +00:00
ulan@chromium.org
9ebcfb41e2
ARM: Make DoStoreKeyedFixedDoubleArray faster; don't allow conditional Vmov
...
This patch makes us generate faster code for DoStoreKeyedFixedDoubleArray,
by using a branch rather than a conditional Vmov instruction.
Conditional VFP instructions are not a great idea in general, and it was
especially bad in this case because Vmov expands to a bunch of instructions.
For this reason, the patch also removes the 'cond' parameter from Vmov.
Thanks to Rodolph for pointing me to this!
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12316096
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 16:15:37 +00:00
loislo@chromium.org
34c372d800
Fix for HeapSnapshotAddressReuse test case.
...
BUG=V8:2189
TEST=HeapSnapshotAddressReuse
Review URL: https://chromiumcodereview.appspot.com/12320039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 16:09:57 +00:00
ulan@chromium.org
d01fced78d
Prepare push to trunk. Now working on version 3.17.5.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12315080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 15:47:52 +00:00
svenpanne@chromium.org
fb6776e84a
Made Isolate a mandatory parameter for everything Handle-related.
...
Unified parameter order of CreateHandle with the rest of v8 on the way. A few
Isolate::Current()s had to be introduced, which is not nice, and not every place
will win a beauty contest, but we can clean this up later easily in smaller steps.
Review URL: https://codereview.chromium.org/12300018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 14:46:09 +00:00
danno@chromium.org
cbe088fffc
Fix bugs in generating and printing of Crankshaft stubs
...
Review URL: https://codereview.chromium.org/12317044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 14:03:09 +00:00
ulan@chromium.org
7dd0b1ca77
Zap holes in dependent code array after deoptimizing a code group.
...
BUG=crash on GC stress builder
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12315077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 12:27:28 +00:00
ulan@chromium.org
82a7ce63dc
Revert r13699 "Debugger: ScopeMirror has N^2 algorithm when building closure mirrors." because of WebKit crashes.
...
BUG=v8:2554
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12321108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 11:56:37 +00:00
ulan@chromium.org
5c7bff3ed8
Prepare push to trunk. Now working on version 3.17.4.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12338003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 14:04:19 +00:00
svenpanne@chromium.org
54b4b1ecc2
Forced inlining of some GC-related methods.
...
The selection of methods were driven by GCC's -Winline plus some benchmarking.
On ia32, the additional amount of code is roughly 63kB (= 0.07% of Chrome ;-).
BUG=v8:1607
Review URL: https://codereview.chromium.org/12338002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 14:02:52 +00:00
hpayer@chromium.org
ab3114df68
Release evacuation candidates after parallel sweeper threads completed.
...
BUG=
Review URL: https://codereview.chromium.org/12082101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 13:12:12 +00:00
yangguo@chromium.org
a9539ff51f
Fix windows build warnings.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12321047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 12:17:48 +00:00
loislo@chromium.org
ea0817c7d4
Split profile-generator
...
CPU profile code and Heap Snapshot code are completely unrelated to each other.
So we can extract heap snapshot part into separate file.
No functional changes.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/12314027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 12:10:40 +00:00
yangguo@chromium.org
0d63cef35b
Constant fold math and string operations.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12315005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 11:40:37 +00:00
jkummerow@chromium.org
e93011892e
Avoid creating unnecessary branches in Hydrogen
...
Review URL: https://codereview.chromium.org/12281019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 11:29:51 +00:00
mmassi@chromium.org
8ef28eb5ee
Fixed numeric relations on HPhi instances.
...
Review URL: https://codereview.chromium.org/12301027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 10:22:31 +00:00
yangguo@chromium.org
af5eed104c
Handlify escape and unescape.
...
R=mvstanton@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12326015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 09:49:23 +00:00
mmassi@chromium.org
0832d08dd9
Also check if the length ia a smi in a HBoundsCheck.
...
Review URL: https://codereview.chromium.org/12301026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 09:09:01 +00:00
yangguo@chromium.org
215ba8cfc9
Combine %_SubString and %_StringCharAt.
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12217071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-20 14:29:40 +00:00
yangguo@chromium.org
b62de7c04e
Debugger: ScopeMirror has N^2 algorithm when building closure mirrors.
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12326009
Patch from Pavel Feldman <pfeldman@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-20 14:12:31 +00:00
mstarzinger@chromium.org
b5a64451b1
Ensure deopt entries have no relocation information.
...
R=ulan@chromium.org
BUG=chromium:176943
Review URL: https://codereview.chromium.org/12314012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-20 13:12:26 +00:00
ulan@chromium.org
3a1eca4242
Remove prototype checks for leaf maps in optimized code.
...
Review URL: https://chromiumcodereview.appspot.com/12225099
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-20 11:49:54 +00:00
mmassi@chromium.org
bb886feb20
Remove purely informative definitions from the graph.
...
Review URL: https://codereview.chromium.org/12282033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 16:32:02 +00:00
mmassi@chromium.org
20913187c0
Fix HCheckSmiOrInt32 fake observed representation.
...
Review URL: https://codereview.chromium.org/12259008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 14:24:25 +00:00
yangguo@chromium.org
147ab36303
Prepare push to trunk. Now working on version 3.17.3.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12302025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 13:54:30 +00:00
ulan@chromium.org
61bb1b78d3
Remove bogus check for TOP register in deoptimizer.
...
R=danno@chromium.org
BUG=176943
Review URL: https://chromiumcodereview.appspot.com/12300020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 12:37:19 +00:00
hpayer@chromium.org
86ce9a910e
Precise GC time measurements.
...
BUG=
Review URL: https://codereview.chromium.org/12209090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 11:59:48 +00:00
mstarzinger@chromium.org
fa94a23ea8
Cleanup code-stub interface descriptor initialization.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/12302017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-19 09:42:00 +00:00
danno@chromium.org
be8e8f7528
Improve the JitCodeEventHandler API to add support for line position information.
...
This includes:
* adding the CODE_ADD_LINE_POS_INFO, CODE_START_LINE_INFO_RECORDING, CODE_END_LINE_INFO_RECORDING event and the corresponding functionality.
* adding the JITCodeLineInfo struct to record the code line info. I added this definition because Danno mentioned that "we'd like to cleanup and decouple the external debugging functionality"
* some other small changes.
Review URL: https://chromiumcodereview.appspot.com/12223027
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 18:06:12 +00:00
palfia@homejinni.com
261def53c4
MIPS: Split AccessorInfo into DeclaredAccessorInfo and ExecutableAccessorInfo
...
Port r13649 (0a9e0bf0)
BUG=
Review URL: https://codereview.chromium.org/12253005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 17:08:19 +00:00
yangguo@chromium.org
488b19701a
Fix bogus assertion.
...
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12296008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 13:01:00 +00:00
yangguo@chromium.org
77bc99c0b1
Fix bogus assertion.
...
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12303006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 12:22:04 +00:00
yangguo@chromium.org
072bad2ed5
Enable Latin-1
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12039038
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13682 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 10:27:46 +00:00
yangguo@chromium.org
da3e335280
Revert part of r13678 (InternalPackedArray).
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12304004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 10:25:21 +00:00
mstarzinger@chromium.org
a3723243b0
Change and disable global handle zapping.
...
R=yangguo@chromium.org
BUG=chromium:176056
TEST=webkit:storage/indexeddb/create-and-remove-object-store.html
Review URL: https://codereview.chromium.org/12300009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 10:20:58 +00:00
yangguo@chromium.org
d7999dc42e
Remove wrong uses of InternalPackedArray.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12284002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-15 16:21:03 +00:00
yangguo@chromium.org
01f4cb0951
Introduce InternalPackedArray.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12255049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-15 15:20:05 +00:00
palfia@homejinni.com
7349746b22
ARM: Remove unused flag in lithium-codegen.
...
This flag was added by commit r13585.
BUG=
Review URL: https://codereview.chromium.org/12258013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-15 13:01:28 +00:00
hpayer@chromium.org
c1eabf2523
Determine number of available cores on all platforms.
...
BUG=
Review URL: https://codereview.chromium.org/12089107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-15 12:38:59 +00:00
mstarzinger@chromium.org
7767a08683
Add zapping of disposed persistent handles.
...
R=svenpanne@chromium.org
BUG=chromium:176056
Review URL: https://codereview.chromium.org/12260060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-15 12:18:24 +00:00
svenpanne@chromium.org
71a26c928a
Make the Isolate parameter mandatory for internal HandleScopes.
...
Improved Frames and their iterators on the way, too.
BUG=v8:2487
Review URL: https://codereview.chromium.org/12254007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-15 09:27:10 +00:00
mstarzinger@chromium.org
300413b5a9
Fix f.apply() optimization when declared arguments are mutated.
...
R=verwaest@chromium.org
BUG=v8:2539
TEST=mjsunit/regress/regress-2539
Review URL: https://codereview.chromium.org/12255033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-14 15:12:49 +00:00
ulan@chromium.org
c77e538e4b
Prepare push to trunk. Now working on version 3.17.2.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12261036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-14 14:54:27 +00:00
ulan@chromium.org
817ce7285f
Register dependent codes before populating deoptimization data, which can cause GC.
...
R=mstarzinger@chromium.org
BUG=crash on nosnap-debug with stress-compaction
Review URL: https://chromiumcodereview.appspot.com/12256038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-14 13:48:20 +00:00
ulan@chromium.org
250ebdc2be
ARM: Change signature for vmov.32 function in the assembler
...
The assembler has 8 different vmov variants. The one for vmov.32 and for moving
an immediate into a double reg only differs in the type of the second
paremeter: vmov.32 takes an int, the other takes a double.
The situation is dangerous because C++ will happily implicitly convert between
int and double.
This patch changes the signature of the vmov.32 assembler function so that it
cannot be confused with the other vmovs.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12255031
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-14 12:28:02 +00:00
ulan@chromium.org
417765cb08
Enable weak embedded maps in optimized code by default.
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12263031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-14 10:07:01 +00:00
mstarzinger@chromium.org
05e95eee0e
Allow full inlining of f.apply(this, arguments) calls.
...
This allows Crankshaft to completely inline a f.apply() dispatch if the
exact number of arguments is known and the function is constant. The
deoptimizer doesn't generate the f.apply() frame during deoptimization,
so the materialized frames look like f.apply() did a tailcall.
R=jkummerow@chromium.org
TEST=mjsunit/compiler/inline-function-apply
Review URL: https://codereview.chromium.org/12263004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-14 09:55:50 +00:00
hpayer@chromium.org
1a36799422
Prepare push to trunk. Now working on version 3.17.1.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12252009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 17:24:10 +00:00
hpayer@chromium.org
37d88cca4e
Move sweeping pending status field of concurrent sweepers to MarkCompactCollector.
...
BUG=
Review URL: https://codereview.chromium.org/12261011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 15:21:08 +00:00
dcarney@chromium.org
5db57ed97c
Drop latin-1 check from BasicJsonStringifier::DoNotEscape
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12207153
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 14:55:33 +00:00
jkummerow@chromium.org
a7cc374b38
Properly support undefined->0 conversion in ia32 bitwise BinaryOpStubs (regression fix for r13624)
...
Review URL: https://codereview.chromium.org/12212162
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 14:37:09 +00:00
jkummerow@chromium.org
19dab057b4
Fix NegateCompareOp and InvertCompareOp
...
BUG=v8:2537
Review URL: https://codereview.chromium.org/12217136
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 14:36:19 +00:00
palfia@homejinni.com
a475fbb21e
MIPS: Support pass-through of stub caller arguments
...
Port r13593 (ae4edde7)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/12217079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 14:35:05 +00:00
mmassi@chromium.org
a5c6716cf5
Infrastructure classes for evaluating numeric relations between values.
...
Review URL: https://codereview.chromium.org/12226112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 14:16:15 +00:00
palfia@homejinni.com
eb573e1122
MIPS: Generate the TransitionElementsStub using Crankshaft
...
Port r13585 (4174b9d2)
Original commit message:
This includes:
* Adding support for saving callee-clobbered double registers in Crankshaft code.
* Adding a new "HTrapAllocationMemento" hydrogen instruction to handle AllocationSiteInfo data in crankshafted stubs.
* Adding a new "HAllocate" hydrogen instruction that can allocate raw memory from the GC in crankshafted code.
* Support for manipulation of the hole in HChange instructions for Crankshafted stubs.
* Utility routines to manually build loops and if statements containing hydrogen code.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/12212080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 14:01:22 +00:00
palfia@homejinni.com
1d33c7721d
MIPS: Add separate flag for --trace-stub-failures
...
Port r13598 (79a374cf)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/12211088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 13:45:26 +00:00
hpayer@chromium.org
aa8f47d9ba
Limit stack size of sweeper threads.
...
BUG=
Review URL: https://codereview.chromium.org/12256006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 13:19:38 +00:00
hpayer@chromium.org
b9af1ef185
Reduces memory consumption for parallel sweeping.
...
BUG=
Review URL: https://codereview.chromium.org/12177011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 12:46:06 +00:00
hpayer@chromium.org
5f1a4e3fa1
Fix verify heap problem when parallel sweeping is enabled.
...
BUG=
Review URL: https://codereview.chromium.org/12260004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 11:02:39 +00:00
hpayer@chromium.org
ae37a51334
Enable parallel sweeping.
...
BUG=
Review URL: https://codereview.chromium.org/12255002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 09:23:30 +00:00
dcarney@chromium.org
0da6e525b7
Split AccessorInfo into DeclaredAccessorInfo and ExecutableAccessorInfo
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12213012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-12 14:33:08 +00:00
svenpanne@chromium.org
e108d2a87c
Don't try to unlink instructions twice during GVN
...
BUG=chrome:175141
Review URL: https://codereview.chromium.org/12211128
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-12 14:00:39 +00:00
mmassi@chromium.org
6333383ceb
Remove instructions properly (stack check elimination was leaving "dangling uses" around).
...
BUG=
Review URL: https://codereview.chromium.org/12224090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-12 12:04:29 +00:00
svenpanne@chromium.org
9eec096914
Fixed a memory leak in v8 and another one in d8.
...
Cleaned up a few tests on the way. This CL brings us down to 5 leaks for d8.
Review URL: https://codereview.chromium.org/12223089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-12 11:57:51 +00:00
mmassi@chromium.org
2fb5064487
Separated smi check from HBoundsCheck.
...
Review URL: https://codereview.chromium.org/12208013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-12 11:44:08 +00:00
verwaest@chromium.org
394cf5111d
Calculate proper receiver map for monomorphic transitioning ICs.
...
This fixes a regression caused by
https://chromiumcodereview.appspot.com/11953025/
Review URL: https://chromiumcodereview.appspot.com/12217131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-12 10:56:04 +00:00
mstarzinger@chromium.org
25f9eaeae8
MIPS: Fix bugs in DeoptimizeIf when lazy deopt is requested.
...
Port r13633 (9e314349)
BUG=
TEST=
Review URL: https://codereview.chromium.org/12220105
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-12 09:34:40 +00:00
svenpanne@chromium.org
abeed3d055
Don't use local variable after its scoped has been left.
...
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/12224118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13642 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-12 08:59:53 +00:00
mstarzinger@chromium.org
9bb68394a0
Fix code flusher disabling while marking incrementally.
...
This fixes a corner case where the code flusher is disabled while the
incremental marker is still running. This can happen when the debugger
is loaded and a scavenge is triggered. Make sure that all flushing
decisions are revisited after the candidates lists are evicted.
R=hpayer@chromium.org
BUG=chromium:173458,chromium:168582
TEST=cctest/test-heap/Regress173458
Review URL: https://codereview.chromium.org/12217108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13641 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-11 15:11:00 +00:00
svenpanne@chromium.org
d55650164c
Get rid of x87 in ia32 LCodeGen::DoBranch
...
Review URL: https://codereview.chromium.org/12208044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-11 14:44:25 +00:00
vegorov@chromium.org
5aafde9285
Print deoptimization index when printing lithium environment.
...
Output of --trace-deopt --code-comments does not always allow to reliably match deoptimization to the lithium instruction (and it is actually never accurate on x64 due to one level of indirection). This change allows to reliably figure out which instruction deoptimized just by looking up bailout id in the hydrogen.cfg.
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12217103
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-11 14:12:13 +00:00
svenpanne@chromium.org
7b45ab9501
Don't use TLS for space iterators.
...
This is not only inherently slow, but it also forces the caller to enter an
Isolate before. Both is bad, so we have to do some heap plumbing.
BUG=v8:2531
Review URL: https://codereview.chromium.org/12217106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-11 13:02:20 +00:00
mstarzinger@chromium.org
89474cdede
Fix bugs in DeoptimizeIf when lazy deopt is requested.
...
This also implements --trap-on-deopt on x64 and simplifies the
implementation of this flag on all architectures.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/12223053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-08 17:32:47 +00:00
danno@chromium.org
a77daae9f8
Add additional flags to control array abuse tracing
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/12211095
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-08 14:32:38 +00:00
svenpanne@chromium.org
3b08a1f82c
Added new GetHeapStatistics API entry and deprecated old one.
...
Simplified the HeapStatistics class a bit, following Uncle Bob's advice that
adding accessors to DTOs only satisfies some design fundamentalists, but serves
no other purpose. :-)
Review URL: https://codereview.chromium.org/12207076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-08 12:41:55 +00:00
mstarzinger@chromium.org
7a1edfd9a5
Improve tracing of hydrogen stub compilation.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/12208088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-08 11:56:15 +00:00
jkummerow@chromium.org
cd42e5173d
Add missing type feedback collection to ia32 BinaryOpStubs for bitwise operations
...
Review URL: https://codereview.chromium.org/12223039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-07 15:51:05 +00:00
jkummerow@chromium.org
b1d7878c7f
Fix DoubleStackSlot-to-DoubleStackSlot moves on ia32. Unify platform-independent code.
...
BUG=173907
Review URL: https://codereview.chromium.org/12207063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-07 13:15:41 +00:00
danno@chromium.org
9cb3a2e97d
Add --trace-array-abuse to help find OOB accesses.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/12220040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-07 07:56:11 +00:00
adamk@chromium.org
19232a1e7a
Use asserts instead of branches to avoid fast array methods for observed arrays
...
Because observed arrays should always be in dictionary mode, we'll always fall
back to the JS version anyway.
Review URL: https://codereview.chromium.org/12221033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-06 17:35:35 +00:00
mmassi@chromium.org
2dc84e9aec
Prepare push to trunk. Now working on version 3.17.0.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/12212032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-06 14:07:26 +00:00
yangguo@chromium.org
1e90596702
Simplify secure API functions workaround for MinGW
...
If MINGW_HAS_SECURE_API is defined, the definitions of localtime_s,
fopen_s, _vsnprintf_s, strncpy_s had to be renamed using #define
so they would not conflict with definitions in the standard headers.
A simpler way to handle this is to undefine MINGW_HAS_SECURE_API before
including the standard headers.
Contributed by net147@gmail.com
BUGS=
TEST=
Review URL: https://chromiumcodereview.appspot.com/12210033
Patch from Jonathan Liu <net147@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-06 13:04:02 +00:00
yangguo@chromium.org
4ccaefb097
Inline some regexp code.
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12184015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-06 12:58:09 +00:00
yangguo@chromium.org
e6d0315b74
Small improvement in x64 assembler
...
Review URL: https://chromiumcodereview.appspot.com/12177012
Patch from Zheng Z. Liu <zheng.z.liu@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-06 11:54:27 +00:00
verwaest@chromium.org
f08b6ecac7
Split CompileCallConstant into logical parts for Frontend and Backend.
...
Initial step towards separating IC (map check(s)), handler frontend
(prototype-check) and handler backend (actual handler code).
- Still need to split the map-check (IC) from rest of the prototype
chain check.
- Still need to turn different parts in own code objects and cache them
in more optimal places.
Review URL: https://chromiumcodereview.appspot.com/12207016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-06 11:48:29 +00:00
yangguo@chromium.org
c26b3c293d
Do not rely on secure API functions when using MinGW-w64
...
Windows XP does not provide secure API functions in msvcrt.dll but
newer versions of Windows do. Avoid using secure API functions for
compatibility with msvcrt.dll on Windows XP.
Contributed by net147@gmail.com
BUGS=
TEST=
Review URL: https://chromiumcodereview.appspot.com/12189010
Patch from Jonathan Liu <net147@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-06 10:59:50 +00:00
ulan@chromium.org
4485930247
ARM: Try to avoid VMSR instruction and drop redundant VCVT
...
We were doing a redundant VCVT operation in MacroAssembler::EmitECMATruncate.
Also, setting the FPSCR exception flags is expensive on some CPUs, wo we should
try to avoid it if we can.
Thanks to Rodolph Perfetta for the input on this!
Review URL: https://chromiumcodereview.appspot.com/12217014
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-06 10:32:02 +00:00
danno@chromium.org
9f947d714f
Print generated code for Crankshafted stubs with --print-code-stubs
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/12223007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-05 18:00:42 +00:00
danno@chromium.org
940b65160a
Add separate flag for --trace-stub-failures
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/12208011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-05 16:28:36 +00:00
hpayer@chromium.org
492396f2ab
Fixed IsSweepingComplete and EnsureSweeperProgress helper functions.
...
BUG=
Review URL: https://codereview.chromium.org/12177017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-05 15:48:59 +00:00
verwaest@chromium.org
91218182c6
Fix Win64. It still cares about the actual registers behind scratch1/scratch2
...
Review URL: https://chromiumcodereview.appspot.com/12211011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-05 10:38:40 +00:00
danno@chromium.org
5ce30a311d
Fix Win64 build
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/12221012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-05 10:33:21 +00:00
danno@chromium.org
4c052815df
Support pass-through of stub caller arguments
...
Review URL: https://codereview.chromium.org/12093089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-05 08:09:32 +00:00
adamk@chromium.org
dbf50cf948
Object.observe: change array truncation logic to efficiently handle large sparse arrays
...
Review URL: https://codereview.chromium.org/12041084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 21:03:08 +00:00
adamk@chromium.org
6ab7a23f6c
Object.observe: use JSWeakMaps instead of raw ObjectHashTables in observation state
...
object-observe.js uses weak maps to add "hidden" properties to
objects. Previously, the hash tables it was using weren't actually
weak. This patch changes the existing runtime functions to create
instances of JSWeakMap instead of exposing ObjectHashTable directly.
Review URL: https://codereview.chromium.org/12092079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 20:24:11 +00:00
verwaest@chromium.org
4bf6a992cf
Keep ArrayLength, StringLength and FunctionPrototype MONOMORPHIC.
...
Review URL: https://chromiumcodereview.appspot.com/12181012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 15:40:50 +00:00
danno@chromium.org
bd389e6e2d
Prepare push to trunk. Now working on version 3.16.14.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/12190003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 13:32:52 +00:00
verwaest@chromium.org
aca87c2fcd
Tag stubs that rely on instance types as MEGAMORPHIC.
...
BUG=chromium:173974
Review URL: https://chromiumcodereview.appspot.com/12178017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 13:12:03 +00:00
danno@chromium.org
0c3575c874
Generate the TransitionElementsStub using Crankshaft
...
This includes:
* Adding support for saving callee-clobbered double registers in Crankshaft code.
* Adding a new "HTrapAllocationMemento" hydrogen instruction to handle AllocationSiteInfo data in crankshafted stubs.
* Adding a new "HAllocate" hydrogen instruction that can allocate raw memory from the GC in crankshafted code.
* Support for manipulation of the hole in HChange instructions for Crankshafted stubs.
* Utility routines to manually build loops and if statements containing hydrogen code.
Review URL: https://codereview.chromium.org/11659022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 12:01:59 +00:00
ulan@chromium.org
744d61ebe7
Fix clearing of dead dependent codes and verify weak embedded maps on full GC.
...
BUG=172488,172489
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12094036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 10:56:50 +00:00
ulan@chromium.org
23ee3f285a
Make the arm port build cleanly with Clang.
...
This fixes the following two warnings, so that "make all" builds cleanly
with Clang:
src/arm/macro-assembler-arm.h:1410:7: error: private field
'instructions_' is not used
[-Werror,-Wunused-private-field]
int instructions_; // Number of instructions of the expected patch size.
^
src/arm/simulator-arm.cc:402:20: error: variable 'words' is used uninitialized whenever 'if'
condition is false [-Werror,-Wsometimes-uninitialized]
} else if (argc == next_arg + 1) {
^~~~~~~~~~~~~~~~~~~~
../src/arm/simulator-arm.cc:407:21: note: uninitialized use occurs here
end = cur + words;
^~~~~
../src/arm/simulator-arm.cc:402:16: note: remove the 'if' if its condition is always true
} else if (argc == next_arg + 1) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
Review URL: https://chromiumcodereview.appspot.com/12087131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 10:30:54 +00:00
verwaest@chromium.org
7282be179e
MIPS: Merge KeyedLoad and NamedLoad stub compiler code.
...
Port r13579 (e640269)
BUG=
Review URL: https://chromiumcodereview.appspot.com/12186003
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 08:51:37 +00:00
verwaest@chromium.org
0d89d9a019
Merge KeyedLoad and NamedLoad stub compiler code.
...
Review URL: https://chromiumcodereview.appspot.com/12094082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-01 13:39:36 +00:00
danno@chromium.org
df2a62fb25
ARM: Add comments to clarify conditionally executed code dealing with d16-d31
...
Review URL: https://codereview.chromium.org/12087132
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-01 11:57:22 +00:00
verwaest@chromium.org
66b9909328
MIPS: Support slow-mode prototypes for load and call ICs.
...
Port r13571 (c37a2f5).
Original commit message:
Support slow-mode prototypes for load and call ICs.
This changes LoadNonExistent to handle negative lookups as well.
BUG=
Review URL: https://chromiumcodereview.appspot.com/12089098
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-01 10:35:21 +00:00
mmassi@chromium.org
3b8a61dcf3
Base iDef update code.
...
Review URL: https://codereview.chromium.org/12079042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-01 10:16:16 +00:00
mstarzinger@chromium.org
bc16616911
Prepare push to trunk. Now working on version 3.16.13.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/12084091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-01 08:54:38 +00:00
verwaest@chromium.org
b1e5157e7b
Support slow-mode prototypes for load and call ICs.
...
This changes LoadNonExistent to handle negative lookups as well.
Review URL: https://chromiumcodereview.appspot.com/12092043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 16:18:18 +00:00
jkummerow@chromium.org
1c1fdc7da2
Better fix for MemoryChunk::owner().
...
Pointer arithmetic such as "owner_ - kFailureTag" is undefined behaviour
unless owner_ points to a valid object.
This allowed Clang to assume the subtraction would never be NULL,
causing problems in the caller (see https://codereview.chromium.org/12090072/ ).
To fix this, we should cast owner_ to intptr_t before doing the
arithmetic.
Review URL: https://codereview.chromium.org/12096089
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 15:36:24 +00:00
hpayer@chromium.org
7fe9f3b05c
Added parallel marking threads.
...
BUG=
Review URL: https://codereview.chromium.org/12047044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 14:23:36 +00:00
danno@chromium.org
66dbac2b88
MIPS: Fix gbemu performance regression.
...
Port r13557 (aa3ba8a)
BUG=
Review URL: https://codereview.chromium.org/12091083
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 12:57:05 +00:00
verwaest@chromium.org
672056ac88
Only mark the descriptor that is valid for the map in question. If this map
...
transitioned from a map with a different descriptor array (or has no back
pointer), mark all valid descriptors from the start.
This fixes the following memory leak: Map A shares a descriptor array
with map B. Map B adds constant function c that in its scope holds on to
an instance of B. If the descriptor array of A would keep all the shared
descriptors alive, including c, this keeps alive both A and c
indefinitely.
This CL also fixes a bug in descriptor array trimming. When trimming
descriptor arrays we need to trim off the slack as well (thus the entire
storage); and since we are trimming a descriptor array, we need to trim
* kDescriptorSize.
Review URL: https://chromiumcodereview.appspot.com/12084066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 10:50:42 +00:00
adamk@chromium.org
c001d928df
Object.observe: don't unnecessarily emit oldValue for reconfigurations of data properties
...
When a data property has its attributes changed but its value remains the same,
don't emit an oldValue. This makes the API more consistent by only emitting
oldValue when the value of a property has actually changed (or been removed,
in the case of a reconfiguration as an accessor property or a deletion).
Review URL: https://codereview.chromium.org/11820004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 21:07:28 +00:00
jkummerow@chromium.org
ddc175f244
Work around a bug in Clang that optimizes away a NULL check
...
Review URL: https://codereview.chromium.org/12090072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 17:35:29 +00:00
danno@chromium.org
46bc919b47
MIPS: Fix Mac problem with stubs initialization
...
Port r13542 (d3217e18)
BUG=
TEST=
Review URL: https://codereview.chromium.org/12091042
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 16:12:04 +00:00
danno@chromium.org
c9be48a2b7
MIPS: Add StubFailureTrampolineFrames
...
Port r13533 (2f339757)
Original commit message:
In preparation of supporting stubs that deopt and then need to push their
register-based parameters to an arguments area on the stack that gets properly
collected, add StubFailureTrampolineFrames to hold those parameters.
BUG=
TEST=
Review URL: https://codereview.chromium.org/12087053
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 16:09:31 +00:00
hpayer@chromium.org
ba8a1dca66
Initialize sweeper thread array with NULL.
...
BUG=
Review URL: https://codereview.chromium.org/12079076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 15:50:09 +00:00
verwaest@chromium.org
e7420f65bc
Also allow the empty object map to keep transitions.
...
With the old implementation, due to the map-check being inadequate, such
transitions were already added for cross-context field stores. It is not
necessary anymore to not store transitions, since we properly clear
non-live transitions. Globally enabling this feature will help find more
bugs.
BUG=v8:2518
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12092063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 15:07:58 +00:00
danno@chromium.org
f7bae62cd3
Fix gbemu preformance regression
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/12084063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 14:25:34 +00:00
hpayer@chromium.org
0068ee59ce
Fix build bot. Force instantiation of templatized SweepConservatively method.
...
BUG=
Review URL: https://codereview.chromium.org/12079075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 13:13:04 +00:00
hpayer@chromium.org
117cedbbf2
Fixes Windows build bots.
...
BUG=
Review URL: https://codereview.chromium.org/12094057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 12:47:41 +00:00
hpayer@chromium.org
44caabb1cd
Parallel and concurrent sweeping.
...
Sweep old pointer space and old data space concurrently to the main mutator thread and in parallel.
BUG=
Review URL: https://codereview.chromium.org/11782028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 12:19:32 +00:00
hpayer@chromium.org
c027397c9d
Precisely measure duration of mark and sweep phases. Changed print_cumulative_gc_stat flag to only print GC statistics at end of program.
...
BUG=
Review URL: https://codereview.chromium.org/11595006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 10:51:13 +00:00
ulan@chromium.org
3b24f64e3d
ARM Deoptimizer: fix TODO from r13484
...
This lets the Deoptimizer pointer stay in r0, saving a mov and
simplifying the code a little.
BUG=none
TEST=Tested with test/mjsunit/math-floor-of-div.js, this fails reliably if OSR is broken
Review URL: https://chromiumcodereview.appspot.com/12082046
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 10:24:00 +00:00
ulan@chromium.org
3a23c2f7df
Make DwVfpRegister::AllocationIndexToString use VFPRegister::Name
...
This also fixes a bug caused by a missing comma after "d13" in
the 'names' array in AllocationIndexToString.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12082044
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 09:55:49 +00:00
ulan@chromium.org
d16c2d6093
ARM: Rename Simulator::vfp_register to vfp_registers_
...
This matches Simulator::registers_ and is in line with the style guide.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12096036
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 09:50:25 +00:00
mstarzinger@chromium.org
2a5d46dd1e
Prepare push to trunk. Now working on version 3.16.12.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/12087081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 09:35:15 +00:00
mmassi@chromium.org
89c4153581
Foundation for the use of informative definitions in Crankshaft.
...
Review URL: https://codereview.chromium.org/12090021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 15:46:34 +00:00
danno@chromium.org
80157b61a8
Fix Mac problem with stubs initialization
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/12096040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 15:28:05 +00:00
mstarzinger@chromium.org
9cec21e60c
profiler: log solib addresses unconditionally
...
Make --prof_lazy log the addresses of shared libraries. Without those addresses,
the output of the tick processor is not very useful for node.js applications.
Address logging was disabled for --prof-lazy in r3154 for reasons that no longer
apply: the profiler is started on demand and hence looking up the addresses is
deferred until it's actually necessary.
Review URL: https://codereview.chromium.org/11309007
Patch from Ben Noordhuis <info@bnoordhuis.nl>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 14:39:09 +00:00
svenpanne@chromium.org
3d3c2711eb
Fixed non-snapshot builds.
...
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/12093041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 12:50:42 +00:00
verwaest@chromium.org
19e1539481
Tag previously GENERIC stubs that potentially IC_Miss as MONOMORPHIC.
...
Review URL: https://chromiumcodereview.appspot.com/12079024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 12:00:56 +00:00
svenpanne@chromium.org
a325d3e60d
Unbreak Win64 build.
...
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/12095033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 10:29:37 +00:00
svenpanne@chromium.org
8e51c4c97b
Unbreak non-SSE2 ia32 platforms.
...
Improved register usage a bit on the way.
Review URL: https://codereview.chromium.org/12082043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 10:18:15 +00:00
danno@chromium.org
a6bc16b6f3
Add StubFailureTrampolineFrames
...
In preparation of supporting stubs that deopt and then need to push their
register-based parameters to an arguments area on the stack that gets properly
collected, add StubFailureTrampolineFrames to hold those parameters.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12052053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 09:12:20 +00:00
danno@chromium.org
c31454ac37
Use MemoryChunk-based allocation for deoptimization entry code
...
This is done by first committing the deoptimization entry code with a minimal
area size (OS::CommitPageSize) and later using CommitArea to adjust the size.
Committed: http://code.google.com/p/v8/source/detail?r=13494
Review URL: https://chromiumcodereview.appspot.com/11566011
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 09:09:55 +00:00
svenpanne@chromium.org
905548d2f6
Improved printing of jump tables.
...
Review URL: https://codereview.chromium.org/12093016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 14:50:47 +00:00
verwaest@chromium.org
c643d9c112
Only update POLYMORPHIC stubs using other POLYMORPHIC or GENERIC stubs.
...
Review URL: https://chromiumcodereview.appspot.com/12088021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 14:41:55 +00:00
yangguo@chromium.org
048b86d697
Log event start and event end separately when using --log-timer-events.
...
R=haraken@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12040075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 13:55:40 +00:00
verwaest@chromium.org
6953861e2f
MIPS: Replace store array length builtin with codestub.
...
Port r13506 (0d666576)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/12077009
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 13:37:32 +00:00
svenpanne@chromium.org
8a86ce7ef6
Do not duplicate the compilation pipeline for stub compilation.
...
The previous duplication is quite bad from an architectural point of
view. Furthermore, it messes up the output of --hydrogen-stats.
As remarked in a comment, there is still more unification work to do, but at
least this CL is a step in the right direction...
Review URL: https://codereview.chromium.org/12091016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 13:24:41 +00:00
verwaest@chromium.org
c8636a2809
Do not try to collect the map if the monomorphic IC stub has no map.
...
This is necessary for monomorphic stubs that rely on instance types,
such as ArrayLength, StringLength and FunctionPrototype.
BUG=chromium:172345
Review URL: https://chromiumcodereview.appspot.com/12082023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 13:19:53 +00:00
ulan@chromium.org
fe0582c262
Put making embedded maps in optimized code weak behind a flag.
...
Disable the flag by default because of Chrome crashes.
BUG=172488,172489
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12091018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 10:25:38 +00:00
mstarzinger@chromium.org
fe8e97798e
Allow inlining of multiple closures from shared function.
...
This allows Crankshaft to allow inlining of multiple different closures
that were all derived from the same shared function info. This pattern
appears when libraries provide generic closures that are used over and
over again at different call-sites.
R=jkummerow@chromium.org
TEST=mjsunit/compiler/inline-closures
Review URL: https://codereview.chromium.org/12071002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 16:55:00 +00:00
yangguo@chromium.org
5681ef6fee
Actually increment queue length for parallel recompile queue.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12039088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 15:54:19 +00:00
svenpanne@chromium.org
47d2fa5c51
Slightly improved Hydrogen stats output for long-running compilations.
...
Replaced a scary pointer comparison by strcmp on the way.
Review URL: https://codereview.chromium.org/12035101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 13:55:02 +00:00
mvstanton@chromium.org
fa06b21e2b
Prepare push to trunk. Now working on version 3.16.11.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12049086
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 13:24:13 +00:00
verwaest@chromium.org
09d6eccaff
Replace store array length builtin with codestub.
...
Also includes some other minor cleanup to make Keyed related IC code
more uniform.
Review URL: https://chromiumcodereview.appspot.com/11896091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 11:55:29 +00:00
svenpanne@chromium.org
b5cb682be6
Avoid excessive memory usage during redundant phi elimination.
...
Basically, the work list for the fixed point iteration has been removed.
BUG=v8:2510
Review URL: https://codereview.chromium.org/12052075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 11:51:48 +00:00
yangguo@chromium.org
24ec13cbd2
Fix additional spec violations wrt RegExp.lastIndex.
...
R=svenpanne@chromium.org
BUG=v8:2437
Review URL: https://chromiumcodereview.appspot.com/12033099
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 10:53:26 +00:00
verwaest@chromium.org
2d566c719a
Merge UpdateStoreCaches into a single function dispatching on ComputeStoreMonorphic and UpdateMegamorphicCache.
...
Review URL: https://chromiumcodereview.appspot.com/12057003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 10:34:17 +00:00
svenpanne@chromium.org
a7e88a3435
Unbreak build (offsetof only works for POD types)
...
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/12040094
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 08:54:11 +00:00
svenpanne@chromium.org
52d10a68cb
Add Isolate parameter to Persistent class.
...
BUG=v8:2487
Review URL: https://codereview.chromium.org/12033011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 08:31:46 +00:00
mstarzinger@chromium.org
44ffa0dcd3
Allow monomorphic loads when static type is known.
...
This allows Crankshaft to generate monomorphic loads when the receiver
type is statically known even though the load site has polymorphic type
feedback. This applies to inlined constructor calls and literals.
R=jkummerow@chromium.org
TEST=mjsunit/compiler/property-static
Review URL: https://codereview.chromium.org/12051058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 17:54:30 +00:00
yangguo@chromium.org
04c8093fe1
Prepare push to trunk. Now working on version 3.16.10.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12047084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 16:29:54 +00:00