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: https://v8.googlecode.com/svn/branches/bleeding_edge@17276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Harmony: implement Math.sign.

R=dslomov@chromium.org
BUG=v8:2938

Review URL: https://codereview.chromium.org/28723002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Enable load elimination.

BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/31923003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Revert "Enable load elimination."

This reverts commit r17281.

TBR=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/32113002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Harmony: implement Math.trunc.

BUG=v8:2938
R=dslomov@chromium.org

Review URL: https://codereview.chromium.org/28793002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add ishell@ to OWNERS.

TBR=danno@chromium.org

Review URL: https://codereview.chromium.org/32523002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
HEnvironmentMarker factory added

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/32513002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@17306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00