Commit Graph

13636 Commits

Author SHA1 Message Date
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