Commit Graph

31199 Commits

Author SHA1 Message Date
rmcilroy
f4cf05fc01 [Interpreter] Add intrinsics for Is<Type> calls.
Add intrinsics for IsSmi, IsTypedArray, IsRegExp and IsJSProxy,
all of which are intrinsics in Full-Codegen.

BUG=v8:4280
LOG=N

Review-Url: https://codereview.chromium.org/2034493002
Cr-Commit-Position: refs/heads/master@{#36707}
2016-06-03 10:56:01 +00:00
rmcilroy
dffbcfe8eb Disable flaky JsNativeJsSample on Ignition.
BUG=v8:4751
TBR=machenbach@chromium.org

Review-Url: https://codereview.chromium.org/2033773003
Cr-Commit-Position: refs/heads/master@{#36706}
2016-06-03 10:53:03 +00:00
mstarzinger
28e6753acc [turbofan] Remove frame state input from speculative ops.
These speculative binary operators are simplified operators and should
not need a frame state themselves. These eager bailout points can by now
be found via checkpoints in the graph, whereas frame states attached to
nodes directly should always represent lazy bailout points.

R=jarin@chromium.org
BUG=v8:5021

Review-Url: https://codereview.chromium.org/2037673002
Cr-Commit-Position: refs/heads/master@{#36705}
2016-06-03 10:02:04 +00:00
zhengxing.li
486f8dd899 X87: Turbofan: Modify WASM linkage to store floats using only 4 bytes.
port 817b59c8ad (r36654)

  original commit message:
  Adds instructions for ARM to push floats.

BUG=

Review-Url: https://codereview.chromium.org/2036773004
Cr-Commit-Position: refs/heads/master@{#36704}
2016-06-03 09:51:34 +00:00
bmeurer
f2da19fe39 [builtins] Migrate Math.log to TurboFan.
Introduce a dedicated Float64Log machine operator, that is either
implemented by a direct C call or by platform specific code, i.e.
using the FPU on x64 and ia32.

This operator is used to implement Math.log as a proper TurboFan
builtin on top of the CodeStubAssembler.

Also introduce a NumberLog simplified operator on top of Float64Log
and use that for the fast inline path of Math.log inside TurboFan
optimized code.

BUG=v8:5065

Review-Url: https://codereview.chromium.org/2029413005
Cr-Commit-Position: refs/heads/master@{#36703}
2016-06-03 09:48:25 +00:00
zhengxing.li
c2ce1bf2ab X87: [Interpreter] Fix GenerateSmiToDouble to avoid assuming it is called from a JSFrame.
port 471893ccec (r36649)

  original commit message:
  GenerateSmiToDouble on ia32 assumes that it is called from a JSFrame and can restore
  the context from the StandardFrameConstants::kContextObject. In the case of the
  interpreter it is called from a interpreter handler stub frame which doesn't
  push the context onto it's frame. Instead, push and pop esi to explicitly restore it
  correctly.

BUG=

Review-Url: https://codereview.chromium.org/2036083003
Cr-Commit-Position: refs/heads/master@{#36702}
2016-06-03 09:38:02 +00:00
zhengxing.li
4089330cd5 X87: VectorICs: Remove special code to increment call counts by two.
port 63ea3a5009 (r36599)

  original commit message:
  Previously, we used the lowest bit for something else.

BUG=

Review-Url: https://codereview.chromium.org/2032063003
Cr-Commit-Position: refs/heads/master@{#36701}
2016-06-03 09:25:17 +00:00
zhengxing.li
82bce6a9fc X87: IC: Eliminate initialization_state as a factor in IC installation.
port 56d90782a5 (r36597)

  original commit message:
  In Crankshaft, we would install special ICs that didn't need a vector and slot
  in the MEGAMORPHIC case. This optimization limits our hand against future
  improvements.

BUG=

Review-Url: https://codereview.chromium.org/2030303002
Cr-Commit-Position: refs/heads/master@{#36700}
2016-06-03 09:25:16 +00:00
mstarzinger
bf7034bfed [turbofan] Remove eager frame state from property access.
This removes the frame state input representing the before-state from
nodes performing property accesses. These frame states can by now be
found via checkpoints in the graph.

R=jarin@chromium.org
BUG=v8:5021

Review-Url: https://codereview.chromium.org/2034673002
Cr-Commit-Position: refs/heads/master@{#36699}
2016-06-03 08:59:32 +00:00
Miran.Karic
16dda2152f Fix bytecode operand type
A value in unittests/Bytecodes.DecodeBytecodeAndOperands was 16 bit
instead of 8 bit. This was causing test to fail on big endian machines.

BUG=

Review-Url: https://codereview.chromium.org/2030063002
Cr-Commit-Position: refs/heads/master@{#36698}
2016-06-03 08:36:30 +00:00
zhengxing.li
22a73e0d85 X87: Temporary workaround for X87 FPU convert SNaN to QNaN automatically issue.
x87 FPU converts the SNaN to QNaN automatically when loading SNaN from memmory. This function caused v8 x87 port can't distinguish the
  Hole NaN (V8 used SNaN for it) from Javascript visible NaNs (V8 used QNaN for it).

  Many test cases failed in this function for v8 x87 port. It's a big effort to refactor all code of x87 FPU loads value from memmory to
  fix this issue.

  So here's a temporary workaround for it, what's this CL does are:
  1. Removed all previous x87 workaround of this issue.
  2. Used SNaN of MIPS which is a not used QNaN in v8 x87 port as the Hole NaN for v8 x87 port.
  3. This CL is only local to x87 port.

BUG=

Review-Url: https://codereview.chromium.org/2033133004
Cr-Commit-Position: refs/heads/master@{#36697}
2016-06-03 08:33:50 +00:00
ahaas
ae521505c4 [heap] Store the host address in the typed remembered set.
We need the host address in another CL to clear invalid slots.

R=ulan@chromium.org

Review-Url: https://codereview.chromium.org/2025833002
Cr-Commit-Position: refs/heads/master@{#36696}
2016-06-03 08:31:09 +00:00
brucedawson
dea0d74747 Suppress compiler and linker warnings in v8 test binaries
VC++ complains about truncation of integer constants despite use of
static_cast. This isn't very helpful as it gives no way of suppressing
the warning in code, so this change suppresses it on the command line.

Additionally, the linker complains about importing of locally defined
functions in component builds. Until this is fixed the warnings should
be suppressed.

NOTRY=true

Review-Url: https://codereview.chromium.org/2028353004
Cr-Commit-Position: refs/heads/master@{#36695}
2016-06-03 08:23:17 +00:00
machenbach
928dd32993 [gn] Add swarming support
BUG=chromium:474921

Review-Url: https://codereview.chromium.org/2034633004
Cr-Commit-Position: refs/heads/master@{#36694}
2016-06-03 08:17:57 +00:00
ivica.bogosavljevic
f6d47317a0 Fix failure in mjsunit/wasm/embenchen/lua_binarytrees on 32-bit architectures
that do not support unaligned access.

This test fails because WasmGraphBuilder::BuildCFuncInstruction allocates
space for doubles using StackSlot turbofan operator, but this space is not
guaranteed to be 8 bytes aligned if SP itself is not 8 bytes aligned (which
is the case on 32-bit architectures).

BUG=mjsunit/wasm/embenchen/lua_binarytrees

Review-Url: https://codereview.chromium.org/2034523003
Cr-Commit-Position: refs/heads/master@{#36693}
2016-06-03 07:42:03 +00:00
v8-autoroll
c174c145ab Update V8 DEPS.
Rolling v8/build to de44ba22d7b4cd7c4285be52a4491f19a9f6c864

Rolling v8/tools/clang to 749adbcdf8277f1b305ee55f921d9246d4aedd45

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Review-Url: https://codereview.chromium.org/2037593003
Cr-Commit-Position: refs/heads/master@{#36692}
2016-06-03 03:25:44 +00:00
jyan
4d8bcd1101 S390: Store Floats as 4 bytes and Double as 8 bytes for codegen
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2036523003
Cr-Commit-Position: refs/heads/master@{#36691}
2016-06-02 22:15:24 +00:00
danno
70e302eedd [turbofan] Fix assert caused by bogus merging of out-of-scope CodeAssembler variables
Previously, CodeAssembler Variables declared in an explicit C++ scope would
continue to be merged into future labels beyond that scope, causing
asserts. This CL ensures that Variables are properly ignored when they go out of
scope.

Review-Url: https://codereview.chromium.org/2035683002
Cr-Commit-Position: refs/heads/master@{#36690}
2016-06-02 21:24:40 +00:00
danno
afb0e7a4bd [turbofan] Fix phi-hinting problem with deferred blocks
Previously, turbofan selected the gap use from first predecessor block when
hinting a phi, unless that block was deferred, in which case the gap move from
the first non-deferred predecessor block was chosen.

This strategy didn't guarantee that an important invariant was maintained: the
predecessor blocks chosen for hinting phis must preceed the phi's block in the
rpo ordering. In most cases the strategy worked, since graphs generated by the
AstGraphBuilder and existing stubs just happened to always generate schedules
where this rpo ordering property for the first predecessor block, but it is
quite possible to generate a code stub by hand that doesn't have this property
(see included test case).

After this CL, the allocator chooses either the the first non-deferred
"rpo-preceeding" block to be the hinting block, or the first deferred
"rpo-preceeding" block if that doesn't exist. In all previously-existing code,
this behavior is the same as the original algorithm, but has the benefit of not
failing in the register allocator in hand-crafted stubs where all the
"rpo-preceeding" predecessors are all in deferred code.

Review-Url: https://codereview.chromium.org/2030463003
Cr-Commit-Position: refs/heads/master@{#36689}
2016-06-02 20:34:18 +00:00
gsathya
df4f8a2b9e Promises: Make PromiseSet operation monomorphic
The PromiseSet operation is called with two types of promises
1) A newly created promise object with no properties
2) Promise object with callbacks and other properties

PromiseSet is called with the first type of promise (with no
properties) from multiple call sites. PromiseSet is called with the
second type of promise object only from FulfillPromise. Furthermore,
this call only sets the value and status of the promise, the rest of
the values are reset to UNDEFINED (which isn't necessary).

This patch inlines the calls to set the value and status of the
promise in FulfillPromise, instead of calling out to PromiseSet.

This patch also reduces the number of symbol lookups, as we only set
the value and status of the promise, and don't change the callback or
deferred symbols.

This patch results in a performance improvement of 2.8% over 5 runs in
the bluebird benchmark.

BUG=v8:5046

Review-Url: https://codereview.chromium.org/2025073002
Cr-Commit-Position: refs/heads/master@{#36688}
2016-06-02 16:43:45 +00:00
bjaideep
9bba1494f4 PPC/s390: [stubs] An easier way of defining a stub call interface descriptor.
Port a2fef3af4b

Original commit message:

    This CL introduces a DECLARE_DEFAULT_DESCRIPTOR macro that helps defining a
    CallInterfaceDescriptor in a cases where it is not important which registers
    to use for passing arguments. One can use such descriptors for new TurboFan stubs.

    HasPropertyDescriptor now uses the new machinery.

R=ishell@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2034773002
Cr-Commit-Position: refs/heads/master@{#36687}
2016-06-02 15:32:47 +00:00
ishell
3c4f903e56 [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support.
This CL also replaces some Branch() usages with GotoIf/GotoUnless.

(This is a reland after fixing issues that prevented this CL from landing in other CLs).

BUG=v8:2743
LOG=Y

Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e
Cr-Commit-Position: refs/heads/master@{#36657}

Review-Url: https://codereview.chromium.org/1995453002
Cr-Commit-Position: refs/heads/master@{#36686}
2016-06-02 15:02:58 +00:00
jyan
33783870f0 S390: Fix simulator to include AdjustStackLimitForSimulator on Call
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2033103002
Cr-Commit-Position: refs/heads/master@{#36685}
2016-06-02 14:56:49 +00:00
ishell
e7d8279a14 Make CodeStubAssemblerTester use its own zone instead of Isolate::runtime_zone().
... to ensure that the zone is properly shut down.

Review-Url: https://codereview.chromium.org/2034463003
Cr-Commit-Position: refs/heads/master@{#36684}
2016-06-02 14:25:22 +00:00
ishell
5a5c115efd Move test/cctest/compiler/test-code-stub-assembler.cc to test/cctest directory.
... since CodeStubAssembler does not belong to v8::internal::compiler namespace anymore.

Review-Url: https://codereview.chromium.org/2035533003
Cr-Commit-Position: refs/heads/master@{#36683}
2016-06-02 14:10:00 +00:00
bjaideep
b5a2b4db79 AIX: Define __STDC_FORMAT_MACROS in gypi file
Some system header files on AIX include inttypes.h without
    defining __STDC_FORMAT_MACROS and therefore the printf format
    specifier macro (for eg. PRId64) doesn't get defined as they
    are guarded with __STDC_FORMAT_MACROS macro on AIX.
    This error showed up recently when the format specifier was used in
    wasm-interpreter.cc, where a AIX system header file is included
    which also includes inttypes.h without defining __STDC_FORMAT_MACROS.

R=ahaas@chromium.org, titzer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2033483002
Cr-Commit-Position: refs/heads/master@{#36682}
2016-06-02 14:04:40 +00:00
jkummerow
3188210377 Refactor Maps' code_cache
Most maps have a small code cache (often only one entry), so this patch
optimizes memory consumption of such cases by using plain FixedArrays,
only switching to CodeCacheHashTables when the number of cached entries
gets so large that linear-scan lookups get too slow.

On loading inbox.google.com, this gets the aggregate size of all maps'
code caches (there are about 13,600 of them) from 4300 KB to 970 KB.

Review-Url: https://codereview.chromium.org/2021373002
Cr-Commit-Position: refs/heads/master@{#36681}
2016-06-02 13:19:24 +00:00
mvstanton
4f205165de Compiler::CompileBaseline didn't ensure that the closure had literals.
It should work just the same as Compile() and CompileOptimized().

R=mstarzinger@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2033053002
Cr-Commit-Position: refs/heads/master@{#36680}
2016-06-02 12:45:00 +00:00
mstarzinger
a7ff61654a [turbofan] Remove eager frame state from runtime calls.
This removes the frame state input representing the before-state from
nodes having the {JSCallRuntime} operator. These frame states can by now
be found via checkpoints in the graph. It also makes the predicate for
runtime function ids (i.e. {Linkage::NeedsFrameStateInput}) binary.

R=jarin@chromium.org
BUG=v8:5021

Review-Url: https://codereview.chromium.org/2018353004
Cr-Commit-Position: refs/heads/master@{#36679}
2016-06-02 10:45:32 +00:00
mythria
31392d7002 Updates incremental marking pass to collect object statistics.
Object statistics were collected during the mark compact phase. If
an incremental marking happened before mark compact phase then most
of the objects are already visited and hence this phase does not collect
accurate statistics. This cl updates incremental marking pass to collect
object statistics along with mark compact phase.

BUG=

Review-Url: https://codereview.chromium.org/1943423002
Cr-Commit-Position: refs/heads/master@{#36678}
2016-06-02 09:59:57 +00:00
jochen
09d90e4e70 Reland "Move (hopefully) remaining isolate related variables to toolchain.gypi"
BUG=chromium:609107
R=machenbach@chromium.org

Review-Url: https://codereview.chromium.org/2032733003
Cr-Commit-Position: refs/heads/master@{#36677}
2016-06-02 09:55:44 +00:00
neis
8154d977e4 Fix bug in yield* desugaring.
In one corner case, we incorrectly returned a value without first wrapping it in
an iterator result object.

R=littledan@chromium.org
BUG=v8:5057

Review-Url: https://codereview.chromium.org/2034653002
Cr-Commit-Position: refs/heads/master@{#36676}
2016-06-02 09:43:59 +00:00
ishell
a2fef3af4b [stubs] An easier way of defining a stub call interface descriptor.
This CL introduces a DECLARE_DEFAULT_DESCRIPTOR macro that helps defining a CallInterfaceDescriptor in a cases where it is not important which registers to use for passing arguments. One can use such descriptors for new TurboFan stubs.

HasPropertyDescriptor now uses the new machinery.

Review-Url: https://codereview.chromium.org/2002143002
Cr-Commit-Position: refs/heads/master@{#36675}
2016-06-02 09:28:24 +00:00
jarin
216bcf9fb3 [turbofan] Initial version of number type feedback.
This introduces optimized number operations based on type feedback.

Summary of changes:

1. Typed lowering produces SpeculativeNumberAdd/Subtract for JSAdd/Subtract if
   there is suitable feedback. The speculative nodes are connected to both the
   effect chain and the control chain and they retain the eager frame state.

2. Simplified lowering now executes in three phases:
  a. Propagation phase computes truncations by traversing the graph from uses to
     definitions until checkpoint is reached. It also records type-check decisions
     for later typing phase, and computes representation.
  b. The typing phase computes more precise types base on the speculative types (and recomputes
     representation for affected nodes).
  c. The lowering phase performs lowering and inserts representation changes and/or checks.

3. Effect-control linearization lowers the checks to machine graphs.

Notes:

- SimplifiedLowering will be refactored to have handling of each operation one place and
  with clearer input/output protocol for each sub-phase. I would prefer to do this once
  we have more operations implemented, and the pattern is clearer.

- The check operations (Checked<A>To<B>) should have some flags that would affect
  the kind of truncations that they can handle. E.g., if we know that a node produces
  a number, we can omit the oddball check in the CheckedTaggedToFloat64 lowering.

- In future, we want the typer to reuse the logic from OperationTyper.

BUG=v8:4583
LOG=n

Review-Url: https://codereview.chromium.org/1921563002
Cr-Commit-Position: refs/heads/master@{#36674}
2016-06-02 09:23:13 +00:00
jochen
a8f57df4f4 Remove has_valgrind.py - the bots now set this flag explicitly
BUG=none
R=machenbach@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2034643002
Cr-Commit-Position: refs/heads/master@{#36673}
2016-06-02 09:02:56 +00:00
Benedikt Meurer
bea121aaa5 [turbofan] Eager frame state gone from JSCallFunction.
TBR=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#36672}
2016-06-02 08:49:30 +00:00
bmeurer
fc881eb7a6 [turbofan] Run EarlyOptimizationPhase after we nuked the types.
It's not safe to look at the types after SimplifiedLowering runs,
as the types are unreliable by that time. So better make sure we
nuke the types first.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2032613006
Cr-Commit-Position: refs/heads/master@{#36671}
2016-06-02 08:30:03 +00:00
yangguo
7ca611d1a5 [regexp] fix subtle bug in RegExpTest.
R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2032713003
Cr-Commit-Position: refs/heads/master@{#36670}
2016-06-02 08:04:30 +00:00
mstarzinger
864b07e9eb [turbofan] Remove eager frame state from call nodes.
This removes the frame state input representing the before-state from
nodes having the {JSCallFunction} or {JSCallConstruct} operator. These
frame states can by now be found via checkpoints in the graph.

R=bmeurer@chromium.org
BUG=v8:5021

Review-Url: https://codereview.chromium.org/2025573003
Cr-Commit-Position: refs/heads/master@{#36669}
2016-06-02 08:04:29 +00:00
bmeurer
5a3a6dafae [turbofan] Add new StringFromCharCode simplified operator.
We use StringFromCharCode to optimize calls to String.fromCharCode with
a single Number argument for now. We will use it to also implement the
charAt method on the String prototype.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2037453003
Cr-Commit-Position: refs/heads/master@{#36668}
2016-06-02 08:01:48 +00:00
v8-autoroll
a096aeed10 Update V8 DEPS.
Rolling v8/build to 2a6b3280927ceaff306473034f1f6c1b390c938b

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Review-Url: https://codereview.chromium.org/2029403002
Cr-Commit-Position: refs/heads/master@{#36667}
2016-06-02 07:21:43 +00:00
machenbach
c0774148d4 [gn] Turn on external_startup_data by default except on ios
This sets the default for the feature, as chromium expects
it: It is turned on for all platforms except ios.

Chromium's build_override can be removed after this.

This will also allow to override the value as a gn arg.

BUG=chromium:474921,chromium:616034
NOTRY=true

Review-Url: https://codereview.chromium.org/2025803003
Cr-Commit-Position: refs/heads/master@{#36666}
2016-06-02 07:17:22 +00:00
machenbach
dab67f0331 Revert of Move (hopefully) remaining isolate related variables to toolchain.gypi (patchset #1 id:1 of https://codereview.chromium.org/2027213002/ )
Reason for revert:
Fails:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/7182/steps/gclient%20runhooks/logs/stdio

Original issue's description:
> Move (hopefully) remaining isolate related variables to toolchain.gypi
>
> BUG=chromium:609107
> R=machenbach@chromium.org
>
> Committed: https://crrev.com/a68a1eb38dda0a1eba3b7644a172d2f85e9c7abe
> Cr-Commit-Position: refs/heads/master@{#36664}

TBR=jochen@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:609107

Review-Url: https://codereview.chromium.org/2038463002
Cr-Commit-Position: refs/heads/master@{#36665}
2016-06-02 07:10:36 +00:00
jochen
a68a1eb38d Move (hopefully) remaining isolate related variables to toolchain.gypi
BUG=chromium:609107
R=machenbach@chromium.org

Review-Url: https://codereview.chromium.org/2027213002
Cr-Commit-Position: refs/heads/master@{#36664}
2016-06-02 06:52:56 +00:00
mlippautz
5979bf5654 Revert of Reland "[heap] Fine-grained JSArrayBuffer tracking" (patchset #7 id:180001 of https://codereview.chromium.org/2026633003/ )
Reason for revert:
Also failing with the new implementation:
  https://build.chromium.org/p/chromium.gpu/builders/Linux%20Debug%20%28NVIDIA%29/builds/62646

Will do a local repro now.

Original issue's description:
> Track based on JSArrayBuffer addresses on pages instead of the attached
> backing store.
>
> Details of tracking:
> - Scavenge: New space pages are processes in bulk on the main thread
> - MC: Unswept pages are processed in bulk in parallel. All other pages
>   are processed by the sweeper concurrently.
>
> BUG=chromium:611688
> LOG=N
> TEST=cctest/test-array-buffer-tracker/*
> CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_tsan_rel,v8_mac64_asan_rel
>
> Committed: https://crrev.com/279e274eccf95fbb4bd41d908b9153acf6ec118a
> Cr-Commit-Position: refs/heads/master@{#36653}

TBR=hpayer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:611688

Review-Url: https://codereview.chromium.org/2032973002
Cr-Commit-Position: refs/heads/master@{#36663}
2016-06-02 06:47:34 +00:00
jarin
0d4c526a1d [crankshaft] Reland "Only exclude explicit 'arguments' (and 'this') from liveness analysis."
Reland of https://codereview.chromium.org/2026173003 (reverted by
https://codereview.chromium.org/2029563002).

Additionally, we need to record environment markers even for the
case of a.length, where a is aliased arguments (which crankshaft
optimizes to constant for the inlined case or to HArgumentsLength
when not inlined).

BUG=chromium:612146

Review-Url: https://codereview.chromium.org/2028243002
Cr-Commit-Position: refs/heads/master@{#36662}
2016-06-02 04:30:17 +00:00
bjaideep
6f76cc567d PPC: Sign-extended result in DoFlooringDivI/DoDivI on 64bit
result is sign-extended on 64bit for functions
     LCodeGen::DoFlooringDivI and LCodeGen::DoDivI

R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2029273002
Cr-Commit-Position: refs/heads/master@{#36661}
2016-06-02 00:44:58 +00:00
rmcilroy
2fd3f9d69b [Interpreter] Don't try to eliminate dead-code in bytecode-array-builder
Eliminating dead code in the bytecode array builder doesn't play nice
with the register elimination optimizer. We should move it to it's own
stage in the optimization pipeline, however doing so would require
refactoring of how we deal with jumps, so for now just remove the dead
code elimination optimization.

BUG=chromium:616064

Review-Url: https://codereview.chromium.org/2030583002
Cr-Commit-Position: refs/heads/master@{#36660}
2016-06-01 22:55:10 +00:00
ishell
9b4f836a2d Revert of Extend HasProperty stub with dictionary-mode and double-elements objects support. (patchset #8 id:280001 of https://codereview.chromium.org/1995453002/ )
Reason for revert:
There are crashes on Win32 and Win64 bots.

Original issue's description:
> Extend HasProperty stub with dictionary-mode, string wrapper and double-elements objects support.
>
> This CL also replaces some Branch() usages with GotoIf/GotoUnless.
>
> BUG=v8:2743
> LOG=Y
>
> Committed: https://crrev.com/24066b6df4259b302edfa1db884c479008776a7e
> Cr-Commit-Position: refs/heads/master@{#36657}

TBR=verwaest@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:2743

Review-Url: https://codereview.chromium.org/2028333002
Cr-Commit-Position: refs/heads/master@{#36659}
2016-06-01 21:10:13 +00:00
jarin
e60c4053c7 [turbofan] Make sure binop results do not overwrite deoptimization inputs on arm.
Review-Url: https://codereview.chromium.org/2031593002
Cr-Commit-Position: refs/heads/master@{#36658}
2016-06-01 20:08:19 +00:00