Commit Graph

31662 Commits

Author SHA1 Message Date
ishell
6955c55321 [turbofan] CodeAssembler is now able to generate calls of JavaScript objects.
... and a drive-by-fix of a comment generation in CodeAssembler.

Review-Url: https://codereview.chromium.org/2076953002
Cr-Commit-Position: refs/heads/master@{#37070}
2016-06-17 13:51:12 +00:00
ishell
b98e3949a3 [test] Move CodeAssembler tests to a separate file.
Review-Url: https://codereview.chromium.org/2072813003
Cr-Commit-Position: refs/heads/master@{#37069}
2016-06-17 13:23:14 +00:00
ishell
e4fba99bbb [test] Reduce number of variants that test/mjsunit/es6/tail-call-megatest.js checks.
Review-Url: https://codereview.chromium.org/2073103002
Cr-Commit-Position: refs/heads/master@{#37068}
2016-06-17 12:29:56 +00:00
machenbach
6a39399763 [mb] Remove redundant flags
BUG=chromium:616035
TBR=kjellander@chromium.org, vogelheim@chromium.org, jochen@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2071313002
Cr-Commit-Position: refs/heads/master@{#37067}
2016-06-17 12:29:55 +00:00
cbruni
44bf44f3dc [counter] Adding missing runtime call counters in the compiler
BUG=

Review-Url: https://codereview.chromium.org/2069373002
Cr-Commit-Position: refs/heads/master@{#37066}
2016-06-17 12:04:50 +00:00
ivica.bogosavljevic
d3f3f6c818 Implement WASM big-endian support.
Implement WASM support on big-endian platforms. WASM has
an implicit requirement that it is running on little-endian
machine. We achieve WASM support on BE by keeping data
in memory in little-endian order, and changing data
endianness before storing to memory and after loading from
memory.

BUG=

Review-Url: https://codereview.chromium.org/2034093002
Cr-Commit-Position: refs/heads/master@{#37065}
2016-06-17 11:53:24 +00:00
adamk
43a10a0c4a Disable Array.prototype.values
It still seems to break things in the wild, see attached Chromium
bug for details.

BUG=v8:4247, chromium:615873

Review-Url: https://codereview.chromium.org/2076763003
Cr-Commit-Position: refs/heads/master@{#37064}
2016-06-17 10:40:12 +00:00
mlippautz
849d6b45ef [heap] Preallocate ArrayBufferTracker for new space pages
BUG=chromium:619491
LOG=N

Review-Url: https://codereview.chromium.org/2076093002
Cr-Commit-Position: refs/heads/master@{#37063}
2016-06-17 10:28:49 +00:00
hlopko
eaafd900e9 Introduce EmbedderHeapTracer::EnterFinalPause()
I need this method because of ActiveScriptWrappables, which have to be processed
at the atomic pause even for incremental solution, as there is no other way of
detecting when an object starts or stops being active than querying it.

LOG=no
BUG=468240

Review-Url: https://codereview.chromium.org/2065833003
Cr-Commit-Position: refs/heads/master@{#37062}
2016-06-17 10:25:47 +00:00
jgruber
f5b83dec4e [builtins] Always pass target and new target to C++ builtins
As a first step towards showing builtin frames in stack traces, we will now
push target and new target unconditionally.

Since the various specializations of BuiltinArguments are made redundant by
this change, we can remove them and all related code.

R=bmeurer@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2074063002
Cr-Commit-Position: refs/heads/master@{#37061}
2016-06-17 10:19:53 +00:00
mvstanton
42279f16af [Math builtins]: Cleanup in ieee754, restoring MSUN version of log2().
Also added comments for the fdlibm.js port of log10, chosen over the MSUN
version for greater precision.

R=bmeurer@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2071823002
Cr-Commit-Position: refs/heads/master@{#37060}
2016-06-17 10:16:54 +00:00
epertoso
c534bd41a0 [x64] Small fixes in the assembler and disassembler.
Disassembler:
added decoding of a few instructions that were previously unsupported, fixed the decoding of pextr.

Assembler:

pmulld(XMMRegister, Operand) was actually emitting a pmuludq.

punpckldq(XMMRegister, XMMRegister) was implemented a second time as punpackldq.

BUG=

Review-Url: https://codereview.chromium.org/2070863002
Cr-Commit-Position: refs/heads/master@{#37059}
2016-06-17 09:28:47 +00:00
mvstanton
4d4eb61111 [builtins] Unify Atanh, Cbrt and Expm1 as exports from flibm.
BUG=v8:5103

Review-Url: https://codereview.chromium.org/2068743002
Cr-Commit-Position: refs/heads/master@{#37058}
2016-06-17 09:14:38 +00:00
mstarzinger
5c5f5c0835 [turbofan] Shortcut checkpoint creation in graph builder.
R=jarin@chromium.org
BUG=v8:5021

Review-Url: https://codereview.chromium.org/2074673002
Cr-Commit-Position: refs/heads/master@{#37057}
2016-06-17 08:38:07 +00:00
machenbach
3249e23e5a [mb] Add presubmit checks
Also comment out some currently unused configs the presubmit
check now complains about. They'll be used soon, once
respective bots are added.

BUG=chromium:616035
TBR=kjellander@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2076053002
Cr-Commit-Position: refs/heads/master@{#37056}
2016-06-17 08:35:15 +00:00
clemensh
b8238f8977 [wasm] Split off debug info from wasm object
All debugging-related information is now stored inside a dedicated
object, which is only allocated if debugging support is needed.
This is also where later a reference to the interpreter will be stored
for executing to-be-debugged functions and providing stack inspection.

R=titzer@chromium.org, ahaas@chromium.org
BUG=chromium:613110

Review-Url: https://codereview.chromium.org/2050953003
Cr-Commit-Position: refs/heads/master@{#37055}
2016-06-17 08:35:14 +00:00
machenbach
c7443874a1 [mb] Fix typo in mb config
BUG=chromium:616035
TBR=kjellander@chromium.org
NOTRY=true
NOTREECHECKS=true
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2072833004
Cr-Commit-Position: refs/heads/master@{#37054}
2016-06-17 07:50:18 +00:00
jgruber
198e09de5a [builtins] Use BUILTIN frame in DatePrototype_GetField
Construct a BUILTIN frame before throwing an exception from runtime.

R=bmeurer@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2078443002
Cr-Commit-Position: refs/heads/master@{#37053}
2016-06-17 07:44:42 +00:00
machenbach
fe8f31e864 [gn] Fix another ia32/x86 typo.
BUG=chromium:619503
TBR=jochen@chromium.org, vogelheim@chromium.org, dpranke@chromium.org, thakis@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2072203002
Cr-Commit-Position: refs/heads/master@{#37052}
2016-06-17 07:44:41 +00:00
jgruber
f47b9e9810 [builtins] Introduce a proper BUILTIN frame type.
This adds a new BUILTIN frame type, which supports variable number of
arguments for builtins implemented in hand-written native code (we will
extend this mechanism to TurboFan builtins at some point). Convert the
Math.max and Math.min builtins to construct a BUILTIN frame if required.

This does not yet work for C++ builtins, but that'll be the next step.

R=bmeurer@chromium.org, jarin@chromium.org
BUG=v8:4815
LOG=n

Review-Url: https://codereview.chromium.org/2069423002
Cr-Commit-Position: refs/heads/master@{#37051}
2016-06-17 07:41:34 +00:00
machenbach
9347cae998 Add linux64 mb configs.
Depends on https://codereview.chromium.org/2071583003/ to
skip redundant clang=1 configs.

BUG=chromium:616035
NOTRY=true

Review-Url: https://codereview.chromium.org/2071793002
Cr-Commit-Position: refs/heads/master@{#37050}
2016-06-17 07:33:16 +00:00
mtrofin
7442f537bc [build] Provide tracing dependency via variable
This avoids introducing an include path outside v8. Instead, the path
to where tracing includes are located is provided via a variable.

Please refer to https://codereview.chromium.org/2068073002.

Once the v8 change makes its way to chromium, we can remove the
TODO in this current change.

BUG=

Review-Url: https://codereview.chromium.org/2061933002
Cr-Commit-Position: refs/heads/master@{#37049}
2016-06-17 07:21:57 +00:00
dpranke
8756f6e90b Update GN build to use v8_target_cpu instead of v8_target_arch.
R=jochen@chromium.org, machenbach@chromium.org, thakis@chromium.org
BUG=chromium:619503

Review-Url: https://codereview.chromium.org/2074003002
Cr-Commit-Position: refs/heads/master@{#37048}
2016-06-17 07:07:30 +00:00
bmeurer
d5f2ac5e33 [builtins] Introduce proper Float64Exp operator.
Import base::ieee754::exp() from FreeBSD msun and introduce a Float64Exp
TurboFan operator based on that, similar to what we do for Float64Log.
Rewrite Math.exp() as TurboFan builtin and use that operator to also
inline Math.exp() into optimized TurboFan functions.

CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
BUG=v8:3266,v8:3468,v8:3493,v8:5086,v8:5108,chromium:620786
R=mvstanton@chromium.org

Committed: https://crrev.com/93e26314afc9da9b5b8bd998688262444ed73260
Review-Url: https://codereview.chromium.org/2077533002
Cr-Original-Commit-Position: refs/heads/master@{#37037}
Cr-Commit-Position: refs/heads/master@{#37047}
2016-06-17 05:20:59 +00:00
martyn.capewell
d3597aee1f [turbofan] Replace shr of masked bits with zero
If (mask >>> s) == 0, ((x & mask) >> s) == 0, so replace the node with zero in
MachineOperatorReducer.

BUG=

Review-Url: https://codereview.chromium.org/2069973002
Cr-Commit-Position: refs/heads/master@{#37046}
2016-06-17 04:49:32 +00:00
v8-autoroll
01e956c50e Update V8 DEPS.
Rolling v8/build to 6b34ef332946c38d33d0c08c1915d4b392808ebb

Rolling v8/tools/mb to 340ee1614f0ab8aa8b1846d10b26426789dbca0e

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

Review-Url: https://codereview.chromium.org/2071073003
Cr-Commit-Position: refs/heads/master@{#37045}
2016-06-17 03:25:58 +00:00
mtrofin
273bb58c33 [wasm] memory size is an uint32_t, not a size_t.
BUG=

Review-Url: https://codereview.chromium.org/2077623002
Cr-Commit-Position: refs/heads/master@{#37044}
2016-06-16 22:23:10 +00:00
jyan
6710159716 PPC/S390: [builtins] Introduce proper Float64Log2 and Float64Log10 operators.
port d9bf520a22

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

BUG=v8:5095

Review-Url: https://codereview.chromium.org/2070893002
Cr-Commit-Position: refs/heads/master@{#37043}
2016-06-16 18:05:00 +00:00
mlippautz
2263ee9bf4 Revert of [heap] Add page evacuation mode for new->new (patchset #18 id:440001 of https://codereview.chromium.org/1957323003/ )
Reason for revert:
Fragmentation of LABs could result in increasing memory usage (pages) instead of shrinking.

BUG=chromium:620320
LOG=N

Original issue's description:
> [heap] Add page evacuation mode for new->new
>
> Adds an evacuation mode that allows moving pages within new space without
> copying objects.
>
> Basic idea:
> a) Move page within new space
> b) Sweep page to make iterable and process ArrayBuffers
> c) Finish sweep till next scavenge
>
> Threshold is currently 70% live bytes, i.e., the same threshold we use
> to determine fragmented pages.
>
> BUG=chromium:581412
> LOG=N
> 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/49b23201671b25092a3c22eb85783f39b95a5f87
> Cr-Commit-Position: refs/heads/master@{#36990}

TBR=ulan@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:581412

Review-Url: https://codereview.chromium.org/2063013005
Cr-Commit-Position: refs/heads/master@{#37042}
2016-06-16 16:55:46 +00:00
jyan
b60da28ced S390: [wasm] Relocatable Globals.
Port 2d1f977c93

Original commit message:

    Support for relocatable globals, to facilitate compilation before
    instantiation.

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

BUG=v8:5072
LOG=N

Review-Url: https://codereview.chromium.org/2071883002
Cr-Commit-Position: refs/heads/master@{#37041}
2016-06-16 15:22:32 +00:00
jyan
a3b6f9bbbe S390: [Heap] Fix comparing against new space top pointer
Port d6473f5c14

Original commit message:

    See bug description.

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

BUG=chromium:619382
LOG=N

Review-Url: https://codereview.chromium.org/2072723002
Cr-Commit-Position: refs/heads/master@{#37040}
2016-06-16 15:01:55 +00:00
machenbach
789b0ad77a Revert of [builtins] Introduce proper Float64Exp operator. (patchset #5 id:80001 of https://codereview.chromium.org/2077533002/ )
Reason for revert:
[Sheriff] Leads to some different rounding as it seems in some audio layout tests. Please rebase upstream first if intended:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/7508

Original issue's description:
> [builtins] Introduce proper Float64Exp operator.
>
> Import base::ieee754::exp() from FreeBSD msun and introduce a Float64Exp
> TurboFan operator based on that, similar to what we do for Float64Log.
> Rewrite Math.exp() as TurboFan builtin and use that operator to also
> inline Math.exp() into optimized TurboFan functions.
>
> BUG=v8:3266,v8:3468,v8:3493,v8:5086,v8:5108
> R=mvstanton@chromium.org
>
> Committed: https://crrev.com/93e26314afc9da9b5b8bd998688262444ed73260
> Cr-Commit-Position: refs/heads/master@{#37037}

TBR=mvstanton@chromium.org,ahaas@chromium.org,bmeurer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3266,v8:3468,v8:3493,v8:5086,v8:5108

Review-Url: https://codereview.chromium.org/2070813002
Cr-Commit-Position: refs/heads/master@{#37039}
2016-06-16 12:49:53 +00:00
clemensh
6fa656fde2 [wasm] Check for duplicate export names
Without this check, instantiation of the wasm module would fail on
DefineOwnProperty on the exports object for the duplicate export.
Now we detect this as validation error.

R=rossberg@chromium.org, titzer@chromium.org, ahaas@chromium.org

Review-Url: https://codereview.chromium.org/2065043002
Cr-Commit-Position: refs/heads/master@{#37038}
2016-06-16 12:19:04 +00:00
bmeurer
93e26314af [builtins] Introduce proper Float64Exp operator.
Import base::ieee754::exp() from FreeBSD msun and introduce a Float64Exp
TurboFan operator based on that, similar to what we do for Float64Log.
Rewrite Math.exp() as TurboFan builtin and use that operator to also
inline Math.exp() into optimized TurboFan functions.

BUG=v8:3266,v8:3468,v8:3493,v8:5086,v8:5108
R=mvstanton@chromium.org

Review-Url: https://codereview.chromium.org/2077533002
Cr-Commit-Position: refs/heads/master@{#37037}
2016-06-16 12:10:27 +00:00
clemensh
b16d51efa9 [wasm] Make reported "column number" 1-based
We report the byte offset as column number, but devtools assumes them
to be 1-based and subtracts one unconditionally before further
processing it. It's a bit unfortunate, but because of that we have to
just add 1 to the reported column number on the public StackTrace API.

R=ahaas@chromium.org, titzer@chromium.org
BUG=chromium:613110

Review-Url: https://codereview.chromium.org/2071563002
Cr-Commit-Position: refs/heads/master@{#37036}
2016-06-16 12:07:33 +00:00
mvstanton
d9bf520a22 [builtins] Introduce proper Float64Log2 and Float64Log10 operators.
BUG=v8:5095

Review-Url: https://codereview.chromium.org/2063693002
Cr-Commit-Position: refs/heads/master@{#37035}
2016-06-16 11:25:06 +00:00
ishell
76a5144354 [es8] Unstage syntactic tail calls.
BUG=v8:4915
LOG=Y

Review-Url: https://codereview.chromium.org/2072683002
Cr-Commit-Position: refs/heads/master@{#37034}
2016-06-16 11:22:11 +00:00
ishell
5fcd3eb8a3 [ic] LoadICState cleanup.
LoadICState was used to hold the TypeofMode flag which is relevant only for LoadGlobalIC.
This CL removes usage of this state from LoadIC and KeyedLoadIC and renames the state
class to LoadGlobalICState.

BUG=chromium:576312
LOG=Y

Review-Url: https://codereview.chromium.org/2065373003
Cr-Commit-Position: refs/heads/master@{#37033}
2016-06-16 11:22:10 +00:00
Michael Starzinger
424d4f3bd2 [d8] Make exception reporting more resilient.
This is a follow-up to a recent fix to make the exception reporting even
more resilient. The original regression test flushed out more issues on
different configurations.

TBR=yangguo@chromium.org
TEST=mjsunit/regress/regress-crbug-620253
BUG=chromium:620253
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#37032}
2016-06-16 11:19:03 +00:00
mstarzinger
e55384b28e [d8] Make exception reporting more resilient.
This makes sure exception reporting done by the debug shell behaves
gracefully even near the stack limit. When line number determination
fails we just fallback to not printing source information.

R=yangguo@chromium.org
TEST=mjsunit/regress/regress-crbug-620253
BUG=chromium:620253

Review-Url: https://codereview.chromium.org/2069543007
Cr-Commit-Position: refs/heads/master@{#37031}
2016-06-16 10:14:08 +00:00
ishell
d6b3b7e61c [ic] Remove --new-load-global-ic switch.
BUG=chromium:576312
LOG=Y

Review-Url: https://codereview.chromium.org/2062343002
Cr-Commit-Position: refs/heads/master@{#37030}
2016-06-16 09:48:18 +00:00
bmeurer
47fb39e4de Revert of [turbofan] Properly handle dictionary maps in the prototype chain. (patchset #1 id:1 of https://codereview.chromium.org/2067423003/ )
Reason for revert:
As discussed offline with Toon, this is not the correct fix here.

Original issue's description:
> [turbofan] Properly handle dictionary maps in the prototype chain.
>
> Dictionary prototypes don't have stable maps, but still don't matter for
> element access. Generalized the JSNativeContextSpecialization a bit to
> handle everything that Crankshaft can handle in this regard.
>
> R=jarin@chromium.org
> BUG=chromium:616709
>
> Committed: https://crrev.com/1c7bdc7f6f4d9512f4982590bd949f265ee9c8c3
> Cr-Commit-Position: refs/heads/master@{#37019}

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

Review-Url: https://codereview.chromium.org/2076493002
Cr-Commit-Position: refs/heads/master@{#37029}
2016-06-16 09:17:35 +00:00
clemensh
175fc180b7 [wasm] Add functionality to decode a function offset table
This will be needed during debugging to know function boundaries within
the wasm module bytes, and to extract the bytes for a single function
to disassemble it.

R=titzer@chromium.org
BUG=chromium:613110

Review-Url: https://codereview.chromium.org/2055783002
Cr-Commit-Position: refs/heads/master@{#37028}
2016-06-16 08:46:00 +00:00
machenbach
acfff97cb7 [gn] Fix targets for x86 v8_target_arch
Those were wrongly translated from gyp with ia32. This should
land before renaming v8_target_arch to v8_target_cpu.

BUG=chromium:620527
NOTRY=true
TBR=vogelheim@chromium.org

Review-Url: https://codereview.chromium.org/2065323004
Cr-Commit-Position: refs/heads/master@{#37027}
2016-06-16 08:06:54 +00:00
clemensh
12aa132d87 [wasm] Implement AST printing into an ostream
This will be used for disassembling individual wasm function for
showing them in devtools.
The PrintAst function now also optionally provides an offset table
mapping from byte offset to line and column in the generated text.

R=titzer@chromium.org, ahaas@chromium.org
BUG=chromium:613110

Review-Url: https://codereview.chromium.org/2050213002
Cr-Commit-Position: refs/heads/master@{#37026}
2016-06-16 07:49:48 +00:00
cbruni
13d08bc338 [tools] make ic-explorer deal with empty map records from --trace-ic
BUG=

Review-Url: https://codereview.chromium.org/2062323003
Cr-Commit-Position: refs/heads/master@{#37025}
2016-06-16 07:08:19 +00:00
jarin
a49c4b0a47 [turbofan] Type feedback for numeric comparisons.
Review-Url: https://codereview.chromium.org/2035383003
Cr-Commit-Position: refs/heads/master@{#37024}
2016-06-16 06:37:31 +00:00
bjaideep
b95de04412 PPC: [Heap] Fix comparing against new space top pointer
Port d6473f5c14

Original commit message:

    See bug description.

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

BUG=chromium:619382
LOG=N

Review-Url: https://codereview.chromium.org/2066603007
Cr-Commit-Position: refs/heads/master@{#37023}
2016-06-16 06:26:20 +00:00
bjaideep
3adefd712c PPC: use Cmpi to handle case when kMaxRegularHeapObjectSize > 16bits
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/2069363002
Cr-Commit-Position: refs/heads/master@{#37022}
2016-06-16 05:49:52 +00:00
bjaideep
aa2e6a73ae PPC: [wasm] Relocatable Globals.
Port 2d1f977c93

Original commit message:

    Support for relocatable globals, to facilitate compilation before
    instantiation.

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

BUG=v8:5072
LOG=N

Review-Url: https://codereview.chromium.org/2069163003
Cr-Commit-Position: refs/heads/master@{#37021}
2016-06-16 05:38:43 +00:00