Commit Graph

29031 Commits

Author SHA1 Message Date
bbudge
6b6b005feb Add a kSimd128 machine type for Turbofan.
Adds kSimd128 to MachineRepresentation.
Adds a Simd128Register concept that's platform independent.
Adds UntaggedSimd128 to types.h.

LOG=N
BUG=v8:4124

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

Cr-Commit-Position: refs/heads/master@{#34089}
2016-02-17 19:04:29 +00:00
verwaest
d81fd6213b [runtime] Only muck with prototype dependencies for prototypes
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34088}
2016-02-17 17:22:27 +00:00
verwaest
f3f6b03a75 [runtime] pass in the Isolate into SearchWithCache
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34087}
2016-02-17 16:24:12 +00:00
verwaest
c383fc20ca [runtime] Don't compute the hash for linear search in descriptor array
I replaced the hidden string with hidden_properties_symbol, so we don't
need the extra hash-check anymore. This is slightly faster anyway.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34086}
2016-02-17 16:18:48 +00:00
mbrandy
56e08dfaf6 PPC: [intrinsics] Remove the %_IsDate intrinsic.
Port 0d595bb001

Original commit message:
    It's fine to only have the runtime call here, as it's only used in the
    debug mirror.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34085}
2016-02-17 15:58:35 +00:00
bmeurer
ccf12b4bed [fullcodegen] Remove the hacky %_FastOneByteArrayJoin intrinsic.
This intrinsic was only supported in fullcodegen, and is actually no
longer relevant for SunSpider peak performance it seems, so let's get
rid of it and maybe just implement Array.prototype.join with a fast
path at some point instead.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34084}
2016-02-17 15:51:09 +00:00
ishell
32b4bc1382 [es6] [interpreter] Add tail calls support to Ignition.
This CL introduces two new bytecodes TailCall and TailCallWide.

BUG=v8:4698,v8:4687
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34083}
2016-02-17 15:19:50 +00:00
machenbach
c8117f2fd9 Revert of More simplification and unification of frame handling (patchset id:80001 of https://codereview.chromium.org/1702593002/ )
Reason for revert:
[Sheriff] Breaks nosnap debug:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/5329

Original issue's description:
> More simplification and unification of frame handling
>
> Frame slots indexes numbers are used more consistently for
> computation in both TurboFan and Crankshaft. Specifically,
> Crankshaft now uses frame slot indexes in LChunk, removing
> the need for some special-case maths when building the
> deoptimization translation table.
>
> LOG=N
> R=mstarzinger@chromium.org
>
> Committed: https://crrev.com/81423b84dbb2eaf7e1a57b0f6029fc8e643b4755
> Cr-Commit-Position: refs/heads/master@{#34078}

TBR=mstarzinger@chromium.org,jarin@chromium.org,danno@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34082}
2016-02-17 14:49:50 +00:00
mstarzinger
0dc896c4ef [interpreter] Remove CompilationInfo from graph builder.
This removes the CompilationInfo field from the BytecodeGraphBuilder
class. The intention is to reduce the risk of using uninitialized or
unavailable values from the CompilationInfo (e.g. values that are only
available after parsing).

R=rmcilroy@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34081}
2016-02-17 14:10:54 +00:00
bmeurer
0200dd5621 [intrinsics] Remove the %_IsSimdValue intrinsic.
There's no need to have inline platform code for this intrinsic, which
is only used when generating a descriptive string for an error, the
runtime call is just fine here.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34080}
2016-02-17 13:54:51 +00:00
machenbach
e761942801 [Swarming] Add missing files to gcmole isolate.
BUG=chromium:535160
LOG=n
TBR=tandrii@chromium.org, kjellander@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34079}
2016-02-17 13:26:57 +00:00
danno
81423b84db More simplification and unification of frame handling
Frame slots indexes numbers are used more consistently for
computation in both TurboFan and Crankshaft. Specifically,
Crankshaft now uses frame slot indexes in LChunk, removing
the need for some special-case maths when building the
deoptimization translation table.

LOG=N
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34078}
2016-02-17 13:19:30 +00:00
bmeurer
e80279c02b [crankshaft] Remove the useless HAllocateBlockContext instruction.
It's dead^Wa runtime call Jim!

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34077}
2016-02-17 13:09:15 +00:00
hablich
ed29651bc9 Update V8 version to 5.0
R=machenbach@chromium.org
TBR=danno@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34076}
2016-02-17 12:58:25 +00:00
machenbach
a08701cb0f [Swarming] Add missing files to gcmole isolate.
BUG=chromium:535160
LOG=n
TBR=tandrii@chromium.org, kjellander@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34075}
2016-02-17 12:51:03 +00:00
nikolaos
186728f7e3 Add a revision flag for try_perf.py
R=machenbach@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34074}
2016-02-17 12:13:18 +00:00
mstarzinger
ef5ee8e1fd [turbofan] Remove language mode from JSCall operator.
This removes the language mode parameter from all JSCall operators. The
information is no longer used anywhere and is not threaded through the
interpreter bytecode. We should only thread it through the bytecode if
it has a semantic impact on the compilation.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34073}
2016-02-17 12:04:27 +00:00
bmeurer
76c054b1df [crankshaft] Remove the useless HCallStub instruction.
Everything that HCallStub does can easily be done using the more general
HCallWithDescriptor, so there's no need to have this dedicated
instruction around.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34072}
2016-02-17 11:58:56 +00:00
ulan
017d128b6e Filter invalid slots after array trimming.
If sweeping is in progress then we need to filter out slots in free space after
array trimming, because the sweeper will add the free space into free list.

This CL also fixes a bug in SlotSet::RemoveRange.

BUG=chromium:587004
LOG=NO
TBR=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34071}
2016-02-17 11:53:06 +00:00
verwaest
9eb4929502 [runtime] Replace hidden_string with a 0-hash-code private symbol
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34070}
2016-02-17 11:10:41 +00:00
bmeurer
1e79bd5cc8 [builtins] Support SameValue and SameValueZero via runtime functions.
Also move Object.is implementation to C++ builtin, which is faster
than the current implementation.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34069}
2016-02-17 10:54:25 +00:00
bmeurer
6de9b9ce5b [builtins] Migrate the leftover Boolean setup to C++.
There's no point in having the setup or the toString/valueOf methods in
JavaScript. The full setup can be done during bootstrapping when the
Boolean constructor is created, and the prototype methods don't benefit
from JS + %_ at all.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34068}
2016-02-17 10:36:49 +00:00
mstarzinger
305a36e0d4 Remove strong mode support from property loads.
R=rossberg@chromium.org,bmeurer@chromium.org,verwaest@chromium.org
BUG=v8:3956
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34067}
2016-02-17 10:30:47 +00:00
balazs.kilvady
a7b315b50c MIPS64: Fix '[turbofan] Add an operator to access the parent frame pointer'.
Port fd8fd05cc5

Original commit message:
This functionality is useful for stubs that need to walk the stack. The new
machine operator, LoadParentFramePointer doesn't force the currently compiling
method to have a frame in contrast to LoadFramePointer. Instead, it adapts
accordingly when frame elision is possible, making efficient stack walks
possible without incurring a performance penalty for small stubs that can
benefit from frame elision.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34066}
2016-02-17 10:10:16 +00:00
machenbach
95e4c70287 [Swarming] Isolate gcmole.
BUG=chromium:535160
LOG=n
TBR=tandrii@chromium.org, kjellander@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34065}
2016-02-17 10:08:09 +00:00
zhengxing.li
9727ab7e28 X87: [turbofan] Add an operator to access the parent frame pointer.
port fd8fd05cc5 (r34014)

  original commit message:
  This functionality is useful for stubs that need to walk the stack. The new
  machine operator, LoadParentFramePointer dosn't force the currently compiling
  method to have a frame in contrast to LoadFramePointer. Instead, it adapts
  accordingly when frame elision is possible, making efficient stack walks
  possible without incurring a performance penalty for small stubs that can
  benefit from frame elision.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34064}
2016-02-17 09:48:29 +00:00
verwaest
f9cdf9d4ed [runtime] Don't cache the holder_map_ in the LookupIterator, it's faster.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34063}
2016-02-17 09:47:01 +00:00
zhengxing.li
ede69c4978 X87: [runtime] Turn ArgumentAccessStub into FastNewSloppyArgumentsStub.
port e0129d0f87 (r33986)

  original commit message:
  Turn the fast case of ArgumentsAccessStub into a new stub
  FastNewSloppyArgumentsStub, which is similar to the existing
  FastNewStrictArgumentsStub, although not polished yet, and the slow
  case always went to the runtime anyway, so we can just directly emit
  a runtime call there.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34062}
2016-02-17 09:35:41 +00:00
alph
c2abfe75ea Fix MSAN warning on simulator during cpu profiling.
CPU profiler probes stack frame to find if it's in a valid
state. Under simulator it might happen the frame is not
initialized and MSAN repors that. That's totally ok.
Suppress the warning.

BUG=v8:4751
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34061}
2016-02-17 09:08:15 +00:00
verwaest
d198717714 [runtime] More LookupIterator / Transition related performance tweaks
Minor improvements measured through by https://github.com/kpdecker/six-speed/blob/master/tests/object-assign/object-assign.es6. Mostly due to inlining of NowContains on the FieldType

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

Cr-Commit-Position: refs/heads/master@{#34060}
2016-02-17 09:07:28 +00:00
machenbach
4fbca26cde [Swarming] Make gcmole wrapper cwd-independent.
Some parts of the wrapped scripts seem to expect cwd to be
the v8 directory.

BUG=chromium:535160
LOG=n
TBR=tandrii@chromium.org, kjellander@chromium.org, mstarzinger@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#34059}
2016-02-17 08:40:05 +00:00
rmcilroy
8218fc4686 [Interpreter] Add support for getting inlined functions from interpreted frames.
BUG=v8:4680
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34058}
2016-02-17 08:26:07 +00:00
bmeurer
159ffcc080 [crankshaft] Make sure +x is as fast as Number(x).
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34057}
2016-02-17 07:42:00 +00:00
bmeurer
0d595bb001 [intrinsics] Remove the %_IsDate intrinsic.
It's fine to only have the runtime call here, as it's only used in the
debug mirror.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34056}
2016-02-17 07:27:01 +00:00
zhengxing.li
82289a989d X87: [runtime] Introduce FastNewStrictArgumentsStub to optimize strict arguments.
port 09d845354742a90fc0596262eb5cbaac169e5ed9(r33925)

  original commit message:
  The FastNewStrictArgumentsStub is very similar to the recently added
  FastNewRestParameterStub, it's actually almost a copy of it, except that
  it doesn't have the fast case we have for the empty rest parameter. This
  patch improves strict arguments in TurboFan and fullcodegen by up to 10x
  compared to the previous version.

  Also introduce proper JSSloppyArgumentsObject and JSStrictArgumentsObject
  for the in-object properties instead of having them as constants in the
  Heap class.

  Drive-by-fix: Use this stub and the FastNewRestParameterStub in the
  interpreter to avoid the runtime call overhead for strict arguments
  and rest parameter creation.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34055}
2016-02-17 07:23:28 +00:00
zhengxing.li
3ada8da360 X87: [es6] Further fixing of tail Calls.
port e519e6fadfaf7242231f4dcb45910f60304e26fc(r33886)

  original commit message:
  1) Update profiling counters in Full codegen.
  2) Call Runtime::kTraceTailCall when tracing is on

  test/mjsunit/es6/tail-call-simple.js is disabled for now, because Turbofan does not fully support TCO yet.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34054}
2016-02-17 06:56:50 +00:00
v8-autoroll
8ba651aa20 Update V8 DEPS.
Rolling v8/build/gyp to ed163ce233f76a950dce1751ac851dbe4b1c00cc

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

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

Cr-Commit-Position: refs/heads/master@{#34053}
2016-02-17 04:24:07 +00:00
mtrofin
985f67911c Produce debug name in debug builds.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34052}
2016-02-17 03:52:01 +00:00
caitpotter88
3649170259 [cleanup] add Parser accessors for FLAG_harmony_function_sent
BUG=
LOG=N
R=adamk@chromium.org, littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34051}
2016-02-17 00:19:21 +00:00
caitpotter88
fd2edb0ea2 [parser] unify metaproperty parsing and require unescaped property name
BUG=v8:4756
LOG=N
R=adamk@chromium.org, littledan@chromium.org, wingo@igalia.com

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

Cr-Commit-Position: refs/heads/master@{#34050}
2016-02-16 23:38:09 +00:00
mbrandy
163ef0991a PPC: [turbofan] Add an operator to access the parent frame pointer
Port fd8fd05cc5

Original commit message:
    This functionality is useful for stubs that need to walk the stack. The new
    machine operator, LoadParentFramePointer dosn't force the currently compiling
    method to have a frame in contrast to LoadFramePointer. Instead, it adapts
    accordingly when frame elision is possible, making efficient stack walks
    possible without incurring a performance penalty for small stubs that can
    benefit from frame elision.

R=danno@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34049}
2016-02-16 22:21:42 +00:00
bradnelson
6357ad847b Support blocks in asm->wasm global section.
The parser can fold together comma separated declarations
into a single block. The AsmWasmBuilder needs to support
this case in order to handle asm.js modules that use this form.

BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=aseemgarg@chromium.org,titzer@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34048}
2016-02-16 19:33:53 +00:00
adamk
f4f1940848 Eagerly declare variables in ParseVariableDeclarations where possible
This avoids spending lots of time in Scope::RemoveUnresolved for very long
variable declaration lists.

BUG=v8:4699
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34047}
2016-02-16 19:09:45 +00:00
machenbach
3ec1417050 [Swarming] Bundle gcmole tools.
This enables downloading all gcmole dependencies from
google storage on demand, controlled by a gyp flag
"gcmole=1". This makes the analysis portable to any linux64
host. The archive contains a prebuilt clang in the needed
version, the gcmole plugin and a lua binary.

The tool can be run through a new wrapper that sets up the
environment. This'll ease running it on swarming.

BUG=chromium:535160
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34046}
2016-02-16 19:07:57 +00:00
rmcilroy
5b2d1956eb [Interpreter] Remove some cctest and mjsunit test skips.
Removes some cctest and mjsunit test skips on Ignition for tests that now pass.

BUG=v8:4680
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34045}
2016-02-16 18:52:09 +00:00
bradnelson
f0d7c7a83b Implementing comma operator for asm->wasm.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=aseemgarg@chromium.org,titzer@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34044}
2016-02-16 18:34:17 +00:00
balazs.kilvady
f739088baa MIPS64: Fix2 '[runtime] Introduce FastNewStrictArgumentsStub to optimize strict arguments.'
Port 09d8453547

More fix after 3b980234c8

Original commit message:
The FastNewStrictArgumentsStub is very similar to the recently added
FastNewRestParameterStub, it's actually almost a copy of it, except that
it doesn't have the fast case we have for the empty rest parameter. This
patch improves strict arguments in TurboFan and fullcodegen by up to 10x
compared to the previous version.

Also introduce proper JSSloppyArgumentsObject and JSStrictArgumentsObject
for the in-object properties instead of having them as constants in the
Heap class.

Drive-by-fix: Use this stub and the FastNewRestParameterStub in the
interpreter to avoid the runtime call overhead for strict arguments
and rest parameter creation.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34043}
2016-02-16 18:30:48 +00:00
fmeawad
5579153777 Remove Monitoring mode in tracing, and mark unimplemented for another macro
BUG=559117
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34042}
2016-02-16 18:00:09 +00:00
hpayer
1d4628fb02 [heap] Refactor free list counters in Page.
BUG=chromium:587026
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34041}
2016-02-16 17:00:59 +00:00
rmcilroy
c0c5d1310c [Interpreter] GetExpression(0) in InterpretedFrames gets first local.
Various places assume that GetExpression returns the locals for a frame.
Modify InterpretedFrames such that GetExpression(0) returns the first
local, not the fixed parts of the interpreter frame.

BUG=v8:4690,v8:4680
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34040}
2016-02-16 15:34:08 +00:00