dslomov@chromium.org
42f85b538e
Crankshaft builtins.
...
Enable optimizing compiler for V8 built-ins. Also fixes an issue uncovered in
x64 codegen.
R=danno@chromium.org , mstarzinger@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/34503003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-23 08:57:54 +00:00
titzer@chromium.org
e942696a35
Make macro-assembler-x64 deal with handles to objects in new space by default.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/34753004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-23 08:47:15 +00:00
dcarney@chromium.org
6eeb141a37
force accessor pair accesses backed by simple api calls to be generic accesses when crankshafted
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/34773003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-23 08:46:46 +00:00
danno@chromium.org
c91fa18de9
Partially annotate V8 for MemorySanitizer.
...
This is a part of https://codereview.chromium.org/26006004/ .
These changes are enough to run most apps that embed V8 (by additionally
ignoring all memory accesses from V8), but don't help testing V8 itself in any
way.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/27471003
Patch from Evgeniy Stepanov <eugenis@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-23 08:39:15 +00:00
bmeurer@chromium.org
a26805d746
Prepare push to trunk. Now working on version 3.22.20.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/32693004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-23 06:50:44 +00:00
rafaelw@chromium.org
146eb9e0ee
Handlify Map::CopyForObserved
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/34023002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 17:41:08 +00:00
mstarzinger@chromium.org
3ec2f19560
Condense flag definitions a bit.
...
This makes it easy to spot the default value of a flag when grepping the
code as the default value appears on the same line as the name now.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/35213002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 17:03:57 +00:00
yurys@chromium.org
87b37f81c1
Revert "Expose v8::Function::GetDisplayName to public API."
...
This reverts commit 54c7b9af65dd349405944bd9ae2f064202dc6e1d.
The new test fails in debug mode.
BUG=chromium:17356
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/30443006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 15:46:15 +00:00
yurys@chromium.org
5177d5b5cd
Expose v8::Function::GetDisplayName to public API.
...
BUG=chromium:17356
R=mstarzinger@chromium.org , yurys@chromium.org , yangguo@chromium.org , yurys
Review URL: https://codereview.chromium.org/26709011
Patch from Andrey Adaikin <aandrey@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 14:57:19 +00:00
yurys@chromium.org
c71eccf95f
Expose v8::Function::IsBuiltin to public API.
...
This will be used by DevTools so that we could generate a better preview in console. Namely, we could assume that a preview of an object is lossless if all its member functions are builtin.
We also may want to expose this to DevTools users via remote debugging protocol in Debugger.FunctionDetails struct.
BUG=chromium:261470
R=mstarzinger@chromium.org , yurys@chromium.org , dcarney@chromium.org , yurys
Review URL: https://codereview.chromium.org/27701002
Patch from Andrey Adaikin <aandrey@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 14:50:20 +00:00
mstarzinger@chromium.org
41318a27bc
Enable escape analysis for Hydrogen.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/34833004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 14:43:53 +00:00
mstarzinger@chromium.org
be3ed75ff3
Fix materialization of captured objects with field tracking.
...
R=titzer@chromium.org
BUG=chromium:298990
TEST=mjsunit/compiler/escape-analysis-representation
Review URL: https://codereview.chromium.org/35133003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 13:48:54 +00:00
svenpanne@chromium.org
d65cc1e21b
Temporarily deactive regress-2185-2 until our array handling is in good shape again.
...
BUG=v8:2950
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/30443005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 13:02:04 +00:00
bmeurer@chromium.org
32d96248f9
Guard against misuse of IfBuilder.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/30693007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 11:37:15 +00:00
ishell@chromium.org
32cdd4d48a
More Hydrogen templatization.
...
Factories added to a set of Hydrogen classes.
Several old-style HXxx::New() replaced with New<HXxx>() and NewUncasted<HXxx>.
Several AddInstruction() calls following New::XXX() replaced with Add<XXX>().
AddLoadNamedField() method added to GraphBuilder.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/34523004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 11:29:05 +00:00
svenpanne@chromium.org
dd74f5aa08
Removed obsolete unit tests.
...
As discussed offline, these tests don't test what they were supposed to
test anymore and were the longest running ones.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/32433009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 11:26:07 +00:00
bmeurer@chromium.org
767cc6910f
Revert "Re-enable global load elimination after fixing misaligned load/stores."
...
This reverts commit r17315 for breaking the webkit tests.
TBR=titzer@chromium.org
Review URL: https://codereview.chromium.org/34853002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 09:45:39 +00:00
titzer@chromium.org
60b17574df
Re-enable global load elimination after fixing misaligned load/stores.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/34653002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 09:15:09 +00:00
svenpanne@chromium.org
7ea4b9204c
Do not run useless test variants for test-parsing/ParserSync.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/34733002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 09:13:33 +00:00
svenpanne@chromium.org
95ac0cdba0
Do not serialize stack limits.
...
This is part of making snapshots reproducable, more to come...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/33193004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 08:50:46 +00:00
mstarzinger@chromium.org
b47dd2b58c
Make PropertyCell::UpdatedType return a handle.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/31933003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 08:24:35 +00:00
bmeurer@chromium.org
06985eac89
Prepare push to trunk. Now working on version 3.22.19.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/32433006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 07:59:35 +00:00
machenbach@chromium.org
eb1b2a7121
Add test for push-to-trunk script.
...
This is a prototype attempt for testing the push-to-trunk script. There are several todos left, but it is not clear if it is worth investing time into those. The test is meant to aid in verifying modifications in the push-to-trunk script.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/32283002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 06:59:35 +00:00
bmeurer@chromium.org
9c26c6a3f2
[Sheriff] Revert "Record allocation stack traces" and "Temporarily disable test-heap-profiler/TrackHeapAllocations".
...
This reverts commit r17301 and r17303 for breaking the nosnap builds.
TBR=yurys@chromium.org
Review URL: https://codereview.chromium.org/34523002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 06:56:19 +00:00
palfia@homejinni.com
f687039bd8
MIPS: Fix kraken 1.1 benchmark failure.
...
This makes sure that the DoubleToIStub::Generate method
does not overwrite the value of the f12 register.
TEST=bencnhmarks/kraken/stanford-crypto-pbkdf2
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/33463002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 22:22:03 +00:00
palfia@homejinni.com
26e02eea57
MIPS: Add tool to visualize machine code/lithium.
...
Port r17295 (b36eb655)
Original commit message:
In the process:
- Add a command-line flag --opt-code-positions to track source position information throughout optimized code.
- Add a subclass of the hydrogen graph builder to ensure that the source position is properly set on the graph builder for all generated hydrogen code.
- Overhaul handling of source positions in hydrogen to ensure they are passed through to generated code consistently and in most cases transparently.
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/33803002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 22:20:45 +00:00
palfia@homejinni.com
04c5b26398
MIPS: Inline number to string conversion for string addition into BinaryOp(Stub).
...
Port r17290 (b5fabb92)
Original commit message:
This fixes a performance regression that was caused by converting the
BinaryOpStub to a Hydrogen code stub. It also fixes a leftover TODO wrt.
the handling of Number*String or String*Number versions of the stub.
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/32473007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 22:16:01 +00:00
yurys@chromium.org
6b840f563e
Temporarily disable test-heap-profiler/TrackHeapAllocations
...
The test started failing on V8 Linux - nosnap - debug after r17301 which added stack traversal to the allocation tracker. I'm disabling it for now until the problem is fixed.
BUG=v8:2949
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/30633005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 16:21:16 +00:00
yurys@chromium.org
66bb9d1563
Record allocation stack traces
...
This is initial implementation of allocation profiler.
Whenever new object allocation is reported to the HeapProfiler and allocation tracking is on we will capture current stack trace, add it to the collection of the allocation traces (a tree) and attribute the allocated size to the top JS function on the stack.
Format of serialized heap snapshot is extended to include information about recorded allocation stack traces.
BUG=chromium:277984
R=hpayer@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/27227005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 15:22:11 +00:00
ishell@chromium.org
30a2a31f14
HEnvironmentMarker factory added
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/32513002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 14:18:55 +00:00
titzer@chromium.org
d63c8e4dc3
Allow constants to be deleted by reinserting them into the graph as needed.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/31943002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 14:09:32 +00:00
mstarzinger@chromium.org
19b2ee1c40
Handlify PropertyCell::SetValueInferType and friends.
...
This finally gets rid of the pesky trampoline in SetValueInferType and
enforces the layering between PropertyCell and Heap. It requires full
handlification of NewGlobalObject as well, which is only used when the
snapshot is created at compile-time.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/28783002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 13:55:24 +00:00
bmeurer@chromium.org
5d8c7ebf37
Add ishell@ to OWNERS.
...
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/32523002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 13:52:12 +00:00
danno@chromium.org
4c565138b5
Add tool to visualize machine code/lithium.
...
In the process:
- Add a command-line flag --opt-code-positions to track source position information throughout optimized code.
- Add a subclass of the hydrogen graph builder to ensure that the source position is properly set on the graph builder for all generated hydrogen code.
- Overhaul handling of source positions in hydrogen to ensure they are passed through to generated code consistently and in most cases transparently.
Originally reviewed in this CL: https://codereview.chromium.org/24957003/
Review URL: https://codereview.chromium.org/29123008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 13:35:48 +00:00
titzer@chromium.org
a255312491
Handle misaligned loads and stores in load elimination. Do not track misaligned loads and be conservative about invalidating misaligned stores. Add more tests for number conversion to string (NumberToStringStub exhibits misaligned loads)
...
BUG=v8:2934
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/28383003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 13:33:03 +00:00
bmeurer@chromium.org
b453e6acb6
Prepare push to trunk. Now working on version 3.22.18.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/32243003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 13:27:08 +00:00
bmeurer@chromium.org
100fb55555
Inline number to string conversion for string addition into BinaryOp(Stub).
...
This fixes a performance regression that was caused by converting the
BinaryOpStub to a Hydrogen code stub. It also fixes a leftover TODO wrt.
the handling of Number*String or String*Number versions of the stub.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/27674002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 12:42:08 +00:00
bmeurer@chromium.org
ef12527b7c
Revert "Add a soft-deopt in keyed element access when current IC is pre-monomorphic and no type feedback was collected."
...
This reverts commit r17288 for breaking the mjsunit/unbox-double-arrays
test on almost every platform.
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/32373002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 12:32:38 +00:00
hpayer@chromium.org
9667e1b30f
Add a soft-deopt in keyed element access when current IC is pre-monomorphic and no type feedback was collected.
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/32263002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 12:10:01 +00:00
yangguo@chromium.org
2d6dab1f2e
Harmony: implement Math.trunc.
...
BUG=v8:2938
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/28793002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 11:15:11 +00:00
titzer@chromium.org
e14c323819
Revert "Enable load elimination."
...
This reverts commit r17281.
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/32113002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 09:36:55 +00:00
titzer@chromium.org
e77739835e
Enable load elimination.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/31923003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 09:24:29 +00:00
yangguo@chromium.org
575438518c
Harmony: implement Math.sign.
...
R=dslomov@chromium.org
BUG=v8:2938
Review URL: https://codereview.chromium.org/28723002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 09:16:31 +00:00
bmeurer@chromium.org
306e8abb66
Prepare push to trunk. Now working on version 3.22.17.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/31913002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 07:19:11 +00:00
mstarzinger@chromium.org
701417f955
Make stack_parameter_count a plain register.
...
R=rossberg@chromium.org , danno@chromium.org
Review URL: https://codereview.chromium.org/28993003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-18 14:55:21 +00:00
titzer@chromium.org
4d0f2cdd3b
Implement global load elimination based on flow engine.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/27148004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-18 14:28:24 +00:00
yangguo@chromium.org
a428465819
Handlify JSObject::HasReal*Property.
...
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/27518002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-18 12:52:07 +00:00
loislo@chromium.org
b50be9ff12
HeapProfiler: integrate FindUntrackedObjects into js code.
...
In some cases we would like to check untracked objects right from the js code.
Otherwise the objects might be collected rigth before check.
BUG=none
R=hpayer@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/27717003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-18 11:25:43 +00:00
loislo@chromium.org
189d13a3fe
HeapProfiler: for the test purposes we would like to trace object movements.
...
When we have an untracked allocations we need to fix it.
It is a bit tricky process due to lack of logging.
I added FLAG_heap_profiler_trace_objects that enables log for object movements.
Drive by fix: with help of logging I found a bug in LeftTrim method for FixedArray.
BUG=none
R=svenpanne@chromium.org , yurys@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=17258
Committed: https://code.google.com/p/v8/source/detail?r=17263
Review URL: https://codereview.chromium.org/27694004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-18 10:59:55 +00:00
jkummerow@chromium.org
4e96d4dee6
Tweak Math.log on ia32/x64
...
ia32 and x64 more consistent now
1. use non-transcendental cache version of log for x64
2. use negative infinity constant instead of pushing to stack and loading to XMM register
3. remove movdbl, use movsd directly. movdbl seems confusing
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/27197013
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-18 10:54:45 +00:00