Commit Graph

30572 Commits

Author SHA1 Message Date
cbruni
aa1b7f6b81 [tools] Add callstats.html to analize --runtime-call-stats output
callstats.html in combination with callstats.py can be used to get an in-depth
view on where we spend time in v8. Furthermore, with callstats.html we can
compare different versions of v8/chrome and see where and how performnce
evolved.

Drive-by-fix: add missing copyrights header to ic-explorer.html and format
ic-explorer.html

BUG=

Review-Url: https://codereview.chromium.org/1947413004
Cr-Commit-Position: refs/heads/master@{#36080}
2016-05-06 13:24:39 +00:00
ulan
82dcb2beee [API] Remove deprecated WeakCallbackData and related functions.
This removes:
- PersistentBase::SetWeak that takes WeakCallbackData.
  The embedders should use the version that takes WeakCallbackInfo.
- PersistentBase::SetPhantom.
  The embedders should SetWeak that takes WeakCallbackInfo.

Functions in DefaultPersistentValueMapTraits are changed to accept
WeakCallbackInfo instead of WeakCallbackData.

BUG=chromium:609808
LOG=NO

Review-Url: https://codereview.chromium.org/1953263002
Cr-Commit-Position: refs/heads/master@{#36079}
2016-05-06 13:18:07 +00:00
jochen
fbe0f303a2 [fuzzer] Force a GC before shutting down isolates
We just deleted a persistent the line before, so make sure the context
is cleared up before disposing the isolate

R=ulan@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1953253003
Cr-Commit-Position: refs/heads/master@{#36078}
2016-05-06 12:53:29 +00:00
ulan
1f6be3d73c Remove deprecated uses of WeakCallbackData from i18n.
BUG=chromium:609808
LOG=NO

Review-Url: https://codereview.chromium.org/1954033002
Cr-Commit-Position: refs/heads/master@{#36077}
2016-05-06 12:42:07 +00:00
mattloring
058809a691 Include file names in hydrogen logs
Hydrogen logs are ambiguous if multiple functions share the same name.
This change adds file names to this output. Functions are now named
<file_name>:<function_name> to reduce this ambiguity.

R=ofrobots@google.com
BUG=

Review-Url: https://codereview.chromium.org/1913973004
Cr-Commit-Position: refs/heads/master@{#36076}
2016-05-06 12:39:39 +00:00
ishell
e17a283f92 [es6] Properly handle the case when an inlined getter/setter/constructor does a tail call.
Deoptimizer is now able to reconstruct topmost accessor and constructor frames.

BUG=chromium:608278, v8:4698
LOG=N
TBR=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/1936043002
Cr-Commit-Position: refs/heads/master@{#36075}
2016-05-06 12:37:13 +00:00
ulan
0dfc1613b5 Remove deprecated uses of WeakCallbackData from tests.
BUG=chromium:609808
LOG=NO

Review-Url: https://codereview.chromium.org/1949393006
Cr-Commit-Position: refs/heads/master@{#36074}
2016-05-06 12:30:08 +00:00
cbruni
e801d554aa [keys] Cleanup: removing unused parameters in elements.cc and keys.cc
- Cleanup CL to remove unused parameters in elements.cc. Additionally use fields
  from the KeyAccumulator wherever possible.
- Make method names in KeyAccumulator more consistent

BUG=

Review-Url: https://codereview.chromium.org/1944703002
Cr-Commit-Position: refs/heads/master@{#36073}
2016-05-06 10:51:35 +00:00
jochen
19a8e09cc0 Add GN targets for samples
BUG=chromium:609107
R=machenbach@chromium.org
LOG=n

Review-Url: https://codereview.chromium.org/1955723003
Cr-Commit-Position: refs/heads/master@{#36072}
2016-05-06 10:40:28 +00:00
jkummerow
148e7076ca Turn on -Wmissing-field-initializers on Linux.
Because not initializing fields can be, you know, dangerous.

Review-Url: https://codereview.chromium.org/1952703002
Cr-Commit-Position: refs/heads/master@{#36071}
2016-05-06 10:20:30 +00:00
nikolaos
1d941a4466 Add script for benchmarking with --runtime-call-stats
R=cbruni@chromium.org
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/1922873004
Cr-Commit-Position: refs/heads/master@{#36070}
2016-05-06 10:18:14 +00:00
mstarzinger
85572b0189 [deoptimizer] Remove obsolete DeoptInfo::mnemonic field.
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/1945363002
Cr-Commit-Position: refs/heads/master@{#36069}
2016-05-06 10:04:50 +00:00
mstarzinger
69963b4c5a [compiler] Move inline function tracing to Crankshaft.
This moves all the machinery for tracing inlined function that is
specific to Crankshaft into the appropriate component. Only the old
side-channel via a list of InlinedFunctionInfo structs remained within
the CompilationInfo for now. In the long run we will reconstruct that
information from the deoptimization data on the code objects.

R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/1944323002
Cr-Commit-Position: refs/heads/master@{#36068}
2016-05-06 09:23:19 +00:00
clemensh
a4cd1eef0a [wasm] Make wasm info available on the stack trace
This changes different locations to extract the reference to the wasm
object and the function index from the stack trace, and make it
available through all the APIs which process stack traces.
The javascript CallSite object now has the new methods isWasm(),
getWasmObject() and getWasmFunctionIndex(); the byte offset is
available via getPosition().

Function names of wasm frames should be fully functional with this
commit, position information works reliably for calls, but not for
traps like unreachable or out-of-bounds accesses.

R=titzer@chromium.org, yangguo@chromium.org

Review-Url: https://codereview.chromium.org/1909353002
Cr-Commit-Position: refs/heads/master@{#36067}
2016-05-06 09:07:45 +00:00
titzer
3b7ff999f3 Revert of [turbofan] Take the immediate size in account when narrowing ia32/x64 word comparison operators. (patchset #2 id:20001 of https://codereview.chromium.org/1948453002/ )
Reason for revert:
Breaks WASM; please also add tests when relanding.

Original issue's description:
> [turbofan] Take the immediate size in account when narrowing ia32/x64 word comparison operators.
>
> Before this patch, we would emit a cmp or test with a memory operand only if both of the operands in the IR were loads. Now if either of them is a load and the other one is an immediate, we can use a memory operand if the load representation machine size is wide enough to represent the latter.
>
> Committed: https://crrev.com/a0543313dbd46b0c2e72c91ee3488a7dc6db73e4
> Cr-Commit-Position: refs/heads/master@{#36009}

TBR=bmeurer@chromium.org,jfb@chromium.org,epertoso@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.

Review-Url: https://codereview.chromium.org/1959603002
Cr-Commit-Position: refs/heads/master@{#36066}
2016-05-06 09:07:44 +00:00
machenbach
27aff30180 [Interpreter] Skip test for tsan.
BUG=v8:4280
LOG=N
NOTRY=true
TBR=rmcilroy@chromium.org

Review-Url: https://codereview.chromium.org/1956663002
Cr-Commit-Position: refs/heads/master@{#36065}
2016-05-06 08:00:07 +00:00
machenbach
6e6a7ea3a4 [test] Skip failing test after clang roll.
BUG=v8:4995
LOG=n
NOTRY=true
TBR=thakis@chromium.org, titzer@chromium.org

Review-Url: https://codereview.chromium.org/1955013002
Cr-Commit-Position: refs/heads/master@{#36064}
2016-05-06 07:57:50 +00:00
bmeurer
8e5e6333cf [turbofan] Remove obsolete EffectSet common operator.
This operator was initially designed to handle arbitrary effect merging
for effect relaxation, but we don't do that (at least currently). So no
need to keep the dead operator around.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/1954983002
Cr-Commit-Position: refs/heads/master@{#36063}
2016-05-06 07:46:44 +00:00
mbrandy
f6df485dc1 [turbofan] Use kHeapObjectTag in place of hard-coded value.
R=bmeurer@chromium.org, jarin@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1945303003
Cr-Commit-Position: refs/heads/master@{#36062}
2016-05-06 07:33:38 +00:00
zhengxing.li
0cf40f9c66 X87: [stubs] Convert InternalArrayNoArgumentsConstructor to a TurboFan stub.
port d2efbf2538 (r36000)

  original commit message:

BUG=

Review-Url: https://codereview.chromium.org/1947363002
Cr-Commit-Position: refs/heads/master@{#36061}
2016-05-06 07:33:37 +00:00
jochen
609b5e5e30 Add GN target for the sample shell
I want to stop using d8 from the chromium build, so we could potentially
use it for running tests.

BUG=chromium:609107
R=machenbach@chromium.org
LOG=n

Review-Url: https://codereview.chromium.org/1944353002
Cr-Commit-Position: refs/heads/master@{#36060}
2016-05-06 07:31:06 +00:00
v8-autoroll
0ae0976110 Update V8 DEPS.
Rolling v8/build to 119d5305247498fdd8a215b8e2b6c50223ac7d4b

Rolling v8/tools/clang to 0bb0462a91310d88ab9d124d8db54a70c9e1d1b0

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

Review-Url: https://codereview.chromium.org/1953813004
Cr-Commit-Position: refs/heads/master@{#36059}
2016-05-06 07:31:05 +00:00
zhengxing.li
23a650ed07 X87: Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code.
port 117a56b7c2 (r36044)

  original commit message:
  - Add new RelocInfo mode WASM_MEMORY_SIZE_REFERENCE in the assembler and add relocation information to immediates in compare instructions.
  - Use relocatable constants for MemSize/BoundsCheck in the wasm compiler

BUG=

Review-Url: https://codereview.chromium.org/1947413003
Cr-Commit-Position: refs/heads/master@{#36058}
2016-05-06 07:31:04 +00:00
zhengxing.li
f68562ee0b X87: [turbofan] Take the immediate size in account when narrowing ia32/x64 word comparison operators.
port a0543313db (r36009)

  original commit message:
  Before this patch, we would emit a cmp or test with a memory operand only if both of the operands in the IR were loads.
  Now if either of them is a load and the other one is an immediate, we can use a memory operand if the load representation machine size is wide enough to represent the latter.

BUG=

Review-Url: https://codereview.chromium.org/1954963002
Cr-Commit-Position: refs/heads/master@{#36057}
2016-05-06 07:28:40 +00:00
jyan
79c350b3c5 S390: Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code.
port 117a56b7c2

Original commit message:
     - Add new RelocInfo mode WASM_MEMORY_SIZE_REFERENCE in the assembler and add relocation information to immediates in compare instructions.
     - Use relocatable constants for MemSize/BoundsCheck in the wasm compiler

R=gdeepti@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/1955593003
Cr-Commit-Position: refs/heads/master@{#36056}
2016-05-05 19:12:32 +00:00
mtrofin
c6405c4a60 [tools] added wasm to the list of benchmarks
BUG=

Review-Url: https://codereview.chromium.org/1931293005
Cr-Commit-Position: refs/heads/master@{#36055}
2016-05-05 19:12:31 +00:00
bjaideep
a870cf3abd PPC: Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code.
Port 117a56b7c2

Original commit message:

     - Add new RelocInfo mode WASM_MEMORY_SIZE_REFERENCE in the assembler and add relocation information to immediates in compare instructions.
     - Use relocatable constants for MemSize/BoundsCheck in the wasm compiler

R=gdeepti@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/1948263003
Cr-Commit-Position: refs/heads/master@{#36054}
2016-05-05 19:10:10 +00:00
akos.palfi
e11eb9a7d7 MIPS: [Atomics] Make Atomics.store a builtin using TF
Port 81cb841170

BUG=

Review-Url: https://codereview.chromium.org/1957463002
Cr-Commit-Position: refs/heads/master@{#36053}
2016-05-05 19:10:09 +00:00
titzer
87cbbdfb1e [wasm] Refactor handling of variable info in typing-asm.cc
R=bradnelson@chromium.org,rossberg@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1951013002
Cr-Commit-Position: refs/heads/master@{#36052}
2016-05-05 19:07:48 +00:00
zhengxing.li
e8c7592c5e X87: [Atomics] Fix disassembly for ia32 xchg_b and xchg_w.
port af677d7b34 (r35998)

  original commit message:
  https://codereview.chromium.org/1938213002 added xchg_b and xchg_w, but didn't
  add it to the disassembler, and there were no tests that caught it.

BUG=

Review-Url: https://codereview.chromium.org/1947843002
Cr-Commit-Position: refs/heads/master@{#36051}
2016-05-05 19:07:47 +00:00
v8-autoroll
fd4f63b652 Update V8 DEPS.
Rolling v8/build to f80756f5df1d90cf1113a2ce335147482e36f65e

Rolling v8/buildtools to 731bdb2af8b5839450605ddebdcf5de749cf9d17

Rolling v8/tools/clang to ee715658a19a60fc73b02532a077d9c96f291331

Rolling v8/tools/gyp to 02b145a1a4f4e1c62e8bae06045caf852d9ef17f

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

Review-Url: https://codereview.chromium.org/1945103004
Cr-Commit-Position: refs/heads/master@{#36050}
2016-05-05 03:37:35 +00:00
zhengxing.li
7a07e9cae4 X87: [Atomics] Make Atomics.store a builtin using TF.
port 81cb841170 (r35993)

  original commit message:

BUG=

Review-Url: https://codereview.chromium.org/1947833002
Cr-Commit-Position: refs/heads/master@{#36049}
2016-05-05 03:24:02 +00:00
zhengxing.li
8d77d42e9d X87: [stubs]: Implement ArrayNoArgumentConstructor as a TF stub.
port fa570e55b6 (r35963)

  original commit message:

BUG=

Review-Url: https://codereview.chromium.org/1952583002
Cr-Commit-Position: refs/heads/master@{#36048}
2016-05-05 02:59:42 +00:00
adamk
40b3626e45 Disallow yield in computed property names of class expressions in params
R=littledan@chromium.org
BUG=v8:4974
LOG=n

Review-Url: https://codereview.chromium.org/1949223002
Cr-Commit-Position: refs/heads/master@{#36047}
2016-05-04 23:25:25 +00:00
adamk
75f2d65f00 Don't treat catch scopes as possibly-shadowing for sloppy eval
Scope analysis is over-conservative when treating variable resolutions
as possibly-shadowed by a sloppy eval. In the attached bug, this comes
into play since catch scopes have different behavior with respect to
the "calls eval" in eager vs lazy compilation (in the latter, they
are never marked as "calls eval" because CatchContexts don't have
an associated ScopeInfo).

This patch changes the scope-type check to also eliminate a few other
cases where shadowing isn't possible, such as non-declaration block scopes.

BUG=chromium:608279
LOG=n

Review-Url: https://codereview.chromium.org/1950803002
Cr-Commit-Position: refs/heads/master@{#36046}
2016-05-04 21:36:13 +00:00
mike
915ec67cc6 Convert negative zero in ArraySpeciesCreate
As per the ES2015 spec, the value `-0` should be converted to `+0` prior
to invocation of the species constructor.

BUG=v8:4988
LOG=N
R=littledan@chromium.org

Review-Url: https://codereview.chromium.org/1950073002
Cr-Commit-Position: refs/heads/master@{#36045}
2016-05-04 21:33:51 +00:00
gdeepti
117a56b7c2 Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code.
- Add new RelocInfo mode WASM_MEMORY_SIZE_REFERENCE in the assembler and add relocation information to immediates in compare instructions.
 - Use relocatable constants for MemSize/BoundsCheck in the wasm compiler

R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org

Review-Url: https://codereview.chromium.org/1921203002
Cr-Commit-Position: refs/heads/master@{#36044}
2016-05-04 20:20:50 +00:00
mbrandy
9f2147874a PPC: Handle large offsets in LoadPU/StorePU.
TEST=mjsunit/array-constructor
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/1947233002
Cr-Commit-Position: refs/heads/master@{#36043}
2016-05-04 19:56:26 +00:00
alph
0a8cd4dc02 Sampling heap profiler: Force Full GC before retrieving the profile.
BUG=v8:4959
LOG=N

Review-Url: https://codereview.chromium.org/1949693003
Cr-Commit-Position: refs/heads/master@{#36042}
2016-05-04 19:16:27 +00:00
jyan
8c55885fe7 S390: Fix printf format mismatch for icount
R=joransiu@ca.ibm.com, cornacch@ca.ibm.com, mbrandy@us.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/1948113002
Cr-Commit-Position: refs/heads/master@{#36041}
2016-05-04 19:03:09 +00:00
jyan
e23471eed2 S390: [stubs] Convert InternalArrayNoArgumentsConstructor to a TurboFan stub
Port d2efbf2538

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

BUG=chromium:608675
LOG=N

Review-Url: https://codereview.chromium.org/1946193004
Cr-Commit-Position: refs/heads/master@{#36040}
2016-05-04 19:00:30 +00:00
jyan
a6d9f42327 S390: [Atomics] Make Atomics.store a builtin using TF
Port 81cb841170

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

BUG=v8:4614
LOG=N

Review-Url: https://codereview.chromium.org/1948043002
Cr-Commit-Position: refs/heads/master@{#36039}
2016-05-04 18:40:41 +00:00
pierre.langlois
f07d2cdd6a ARM64: [turbofan] Avoid zero-extension after a 32-bit load
A load instruction will implicitely clear the top 32 bits when writing to a W
register. This patch avoids generating a `mov` instruction to zero-extend the
result in this case.

For example, this occurs in the generated code for dispatching to the next
bytecode in the interpreter:

  kind = BYTECODE_HANDLER
  name = LdaZero
  compiler = turbofan
  Instructions (size = 36)
  0x32e64c60     0  add x19, x19, #0x1 (1)
  0x32e64c64     4  ldrb w0, [x20, x19]
  0x32e64c68     8  mov w0, w0
                    ^^^^^^^^^^
  0x32e64c6c    12  lsl x0, x0, #3
  0x32e64c70    16  ldr x1, [x21, x0]
  0x32e64c74    20  movz x0, #0x0
  0x32e64c78    24  br x1

BUG=

Review-Url: https://codereview.chromium.org/1950013003
Cr-Commit-Position: refs/heads/master@{#36038}
2016-05-04 18:35:56 +00:00
jyan
e9b244c58a S390: Add HasProperty code stub that tries simple lookups or jumps to runtime otherwise.
Code common with ObjectHasOwnProperty builtin was moved to CodeStubAssembler.

R=ishell@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
BUG=v8:2743
LOG=Y

Review-Url: https://codereview.chromium.org/1946303002
Cr-Commit-Position: refs/heads/master@{#36037}
2016-05-04 18:35:55 +00:00
bryleun
634e5bbab0 S390: [stubs]: Implement ArrayNoArgumentConstructor as a TF stub
Port fa570e55b6

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

BUG=

Review-Url: https://codereview.chromium.org/1952433002
Cr-Commit-Position: refs/heads/master@{#36036}
2016-05-04 17:29:00 +00:00
nikolaos
0d1687b9df Add support for disabling the preparser when testing modules
R=adamk@chromium.org
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/1952473003
Cr-Commit-Position: refs/heads/master@{#36035}
2016-05-04 17:22:20 +00:00
jyan
60c0389b29 S390: Fix Macro-Asm DCHECK
Move DCHECK to only check for necessary path.

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

Review-Url: https://codereview.chromium.org/1946003003
Cr-Commit-Position: refs/heads/master@{#36034}
2016-05-04 16:51:05 +00:00
littledan
04c8c11ee5 Make array __proto__ manipulations not disturb the species protector
Previously, the species protector was invalidated whenever the __proto__ of
an Array instance was manipulated. Then, if the map's new_target_is_base field
remained set, it was correct to conclude that GetPrototypeOf(array) was
%ArrayPrototype%. However, this choice caused the popular D3 framework to
invalidate the species protector, causing many functions to become slower.

This patch eliminates that aspect of the species protector. Instead, the check
is to look at the instance->map()->prototype(). It is valid to look directly
at the map's prototype slot, ignoring hidden prototypes and proxies, because
- This is only called on Array instances, so the receiver cannot be a Proxy.
- For hidden prototypes, any inaccuracy would only result in conservatively
  taking the slow path.

Theoretically, this patch could make methods applied to arrays from other
contexts slower. However, the slowdown would only affect a particular array
instance and not have a global spill-over effect. Further, the slowdown could
be addressed by tracking, either in the instance's map or in the actual
prototype object, whether it is a %ArrayPrototype% from any context, in a way
which is cheap to query, and use that rather than comparing to the currently
executing native context.

In interactive testing, this patch led the OnShape CAD system to experience
faster load times (110+s -> 40s).

BUG=chromium:606207
LOG=Y

Review-Url: https://codereview.chromium.org/1936393002
Cr-Commit-Position: refs/heads/master@{#36033}
2016-05-04 16:48:50 +00:00
jyan
25c0ee5d8b S390: [turbofan] Properly initialize OutOfLineRecordWrite.
TEST=cctest/test-api/Regress470113 --ignition
R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/1944333002
Cr-Commit-Position: refs/heads/master@{#36032}
2016-05-04 16:24:18 +00:00
kozyatinskiy
f0d27360a6 Add v8::Object::GetOwnPropertyNames(context, filter) method
This method provides ability to get all properties of the object with passed filter in addition to existing GetOwnPropertyNames(context) method that returns only enumerable properties.

BUG=v8:3861,chromium:581495
R=yangguo@chromium.org
LOG=Y

Review-Url: https://codereview.chromium.org/1943773002
Cr-Commit-Position: refs/heads/master@{#36031}
2016-05-04 16:15:36 +00:00