Fixed constant folding in HMod.

We have to check for overflow before attempting to do a modulo operation,
otherwise Crankshaft itself segfaults on some platforms, e.g. ia32. Added tests
even for division, where the problem doesn't show up, just to be sure...

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Elide hole checks on KeyedLoads of holey double arrays

Improves NavierStokes by about 5%

R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Prevent flushing of code that was set with %SetCode.

This makes sure that shared function infos that break the one-to-one
mapping to code are marked as un-flushable. Otherwise enqueuing through
the GC meta-data field in the code object doesn't work.

R=rossberg@chromium.org
TEST=cctest/test-api/Threading4

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Improve trace_opt output to help find compilation problems

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Print range and type for phis, too.

To comply with c1visualizer syntax, the format for ranges and types has changed
slightly. Furthermore, the format for phi uses has been changed a bit for more
consistency, too.

R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix missing hole check for loads from Smi arrays when all uses are changes

BUG=chromium:233737

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix Win64 build

TBR=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Consistently assume that arithmetic operations can overflow unless one can prove the opposite.

Previously, HDiv never had its CanOverflow flag cleared and HMod had
inverted logic (compared to HAdd, HSub and HMul). Minor cleanups on the way.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
stop using AsciiValue

TBR=svenpanne@chomium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Enable native implementation of array buffer and typed arrays in d8 and tests.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Enable harmony_typed_arrays for shared build of d8.

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Don't flush code for generator functions.

R=mstarzinger@chromium.org
BUG=v8:2681
TEST=mjsunit/regress/regress-2681

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Only flush SharedFunctionInfo optimized code cache when necessary

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
MIPS: Elide hole checks on KeyedLoads of holey double arrays

Port r14630 (124d01e7)

Original commit message:
Improves NavierStokes by about 5%

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
MIPS: Only flush SharedFunctionInfo optimized code cache when necessary

Port r14650 (d045fbd3)

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
BinaryOpStub::GenerateSmiStub() on 32bit would erroneously patch the IC in case of a gc requirement. Brought the behavior into line with ARM and x64. Also some cleanup to label names.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Prepare push to trunk.  Now working on version 3.19.2.

R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/15159002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fixed linkage for Is template.

With static linkage, clang 3.3 is unhappy about unused functions

   template <> inline bool Is<JSFunction>(Object* obj)
   template <> inline bool Is<JSArray>(Object* obj)

in any compilation unit apart from acessors.cc.

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Ensure that soft-deopts don't count against opt_count

This makes sure that Crankshaft doesn't disable optimization to early on hot functions that still contain unexecuted code without type information.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Don't use anonymous types declared in an anonymous union.

They are a non-standard extension (probably in C1X, IIRC), but clang is unhappy
with them when -Wnested-anon-types is enabled, which seems to be implied by
-pedantic.

With this change and the previous fix for clang, we are now -Werror clean, even
on clang 3.3.

R=rossberg@chromium.org

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

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