Commit Graph

32836 Commits

Author SHA1 Message Date
mstarzinger
70489a1be5 [interpreter] Extend test for OSR from within generators.
R=rmcilroy@chromium.org
TEST=mjsunit/ignition/osr-from-generator
BUG=v8:4764

Review-Url: https://codereview.chromium.org/2185973004
Cr-Commit-Position: refs/heads/master@{#38144}
2016-07-28 16:52:26 +00:00
mvstanton
8587c4ce6f [Turbofan] Soft deopt if we only have deprecated maps on optimization.
In native context specialization, we attempt to use map-based feedback to do optimized named and element loads and stores. Tragically, it could happen that any maps we encounter for a load have been deprecated. The right thing to do here is reoptimize later, let the IC subsystem update the map.

BUG=

Review-Url: https://codereview.chromium.org/2187283002
Cr-Commit-Position: refs/heads/master@{#38143}
2016-07-28 16:43:40 +00:00
mlippautz
1d2a1dd6bf [heap] Prepare Heap::CopyFixedArrayWithMap for black allocation
With black allocation turned on we have no guarantee that the target array is
white and will be visited by the marker. Only execute the fast path when we are
allowed to skip the barrier.

R=hpayer@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2188713004
Cr-Commit-Position: refs/heads/master@{#38142}
2016-07-28 16:20:35 +00:00
hpayer
4ac08c97f0 [heap] Give marking functions for incremental marking more precise names.
BUG=

Review-Url: https://codereview.chromium.org/2173773002
Cr-Commit-Position: refs/heads/master@{#38141}
2016-07-28 14:45:22 +00:00
oth
02b0985335 [interpreter] Fix peephole rule on eliding last before jump.
BUG=chromium:629792
LOG=N

Review-Url: https://codereview.chromium.org/2185123003
Cr-Commit-Position: refs/heads/master@{#38140}
2016-07-28 14:41:26 +00:00
ishell
fc66694de8 [fullcode][mips][mips64][ppc][s390] Avoid trashing of a home object when doing a count operation with keyed load/store to a super.
BUG=chromium:631917

Review-Url: https://codereview.chromium.org/2191663004
Cr-Commit-Position: refs/heads/master@{#38139}
2016-07-28 14:31:07 +00:00
cbruni
ba6e348ffe [api] Remove HistogramTimerScope from high-frequency API-Functions
The timing scopes don't come for free and in the case of wrapper creation only add
overhead. This CL removes the histogram timer for CallAs(Function|Constructor) and
Function::(NewInstance|Call).

BUG=chromium:630217

Review-Url: https://codereview.chromium.org/2188193002
Cr-Commit-Position: refs/heads/master@{#38138}
2016-07-28 14:03:55 +00:00
hpayer
76812cc75c [heap] Do not allow left trimming on new space pages that need to be swept.
BUG=chromium:630969,chromium:632334
LOG=n

Review-Url: https://codereview.chromium.org/2189033002
Cr-Commit-Position: refs/heads/master@{#38137}
2016-07-28 13:49:53 +00:00
jgruber
ea09c9dc1e Move CallSite.toString to C++
BUG=

Review-Url: https://codereview.chromium.org/2174723002
Cr-Commit-Position: refs/heads/master@{#38136}
2016-07-28 13:42:47 +00:00
yangguo
b8229434c9 Reland [inspector] add inspector protocol parser test build target.
BUG=chromium:580337

Review-Url: https://codereview.chromium.org/2190833004
Cr-Commit-Position: refs/heads/master@{#38135}
2016-07-28 12:41:34 +00:00
Alexander.Gilday2
6e01fe20da [turbolizer] Fixed naming of turbolizer perf script.
Change was meant to be in previous patch but was accidentally reverted.
README.md updated with new filename, also.

BUG=

Review-Url: https://codereview.chromium.org/2184223005
Cr-Commit-Position: refs/heads/master@{#38134}
2016-07-28 12:38:00 +00:00
jgruber
b48b04edc4 Handle missing scripts in CallSite.GetEvalOrigin
BUG=630950,631909

Review-Url: https://codereview.chromium.org/2184193004
Cr-Commit-Position: refs/heads/master@{#38133}
2016-07-28 12:06:12 +00:00
danno
7f1fa30e34 [stubs] Port CreateWeakCellStub to turbofan
In the process also inline the stub into the appropriate interpreter bytecode
handler and make sure that the context register is preserved in hand-written
assembly code that calls the stub and expects the context register to be
preserved.

BUG=608675

Review-Url: https://codereview.chromium.org/2188993003
Cr-Commit-Position: refs/heads/master@{#38132}
2016-07-28 11:49:00 +00:00
jgruber
da69889609 Handle failed stack trace captures
BUG=630953
R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2191713004
Cr-Commit-Position: refs/heads/master@{#38131}
2016-07-28 11:13:06 +00:00
machenbach
0f62a0e7aa [gn] Add required sanitizer blacklist files.
Splitt of CL:
https://codereview.chromium.org/2188693002/#ps100001

Switching to GN is blocked on test errors. These files are
required for compilation and allow looking into the test
errors locally.

BUG=chromium:474921
NOTRY=true

Review-Url: https://codereview.chromium.org/2190863003
Cr-Commit-Position: refs/heads/master@{#38130}
2016-07-28 11:05:50 +00:00
hpayer
2c7efba658 Revert of [heap] Reland "Remove black pages and use black areas instead." (patchset #4 id:60001 of https://codereview.chromium.org/2185613002/ )
Reason for revert:
Still crashing.

Original issue's description:
> [heap] Reland "Remove black pages and use black areas instead."
>
> BUG=chromium:630969,chromium:630386
> LOG=n
>
> Committed: https://crrev.com/9e37a07c8de0a20ef2681e26824ff4d329102603
> Cr-Commit-Position: refs/heads/master@{#38057}

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

Review-Url: https://codereview.chromium.org/2183383004
Cr-Commit-Position: refs/heads/master@{#38129}
2016-07-28 10:29:35 +00:00
machenbach
6b23ce3061 Revert "[inspector] add inspector protocol parser test build target for GYP."
Breaks chromium win.

This also includes:

Revert "[gn] Add missing deps to inspector_protocol_parser_test"

Revert "Fix gitignores after moving inspector_protocol"

NOTRY=true
BUG=chromium:580337
TBR=yangguo@chromium.org, jochen@chromium.org, pfeldman@chromium.org

Review-Url: https://codereview.chromium.org/2187263002
Cr-Commit-Position: refs/heads/master@{#38128}
2016-07-28 10:21:48 +00:00
bmeurer
1bce27906d [turbofan] Refactor the lowering of element/property accesses.
Split the monster methods in JSNativeContextSpecialization into smaller
ones, adding appropriate helpers. Improve the condition checking for
strings and numbers using CheckString/CheckNumber when applicable. Also
try to merge compatible PropertyAccessInfos, to avoid running into the
polymorphic case whenever possible.

Drive-by-fix: Don't try to resurrect dead nodes during LoadElimination.
With the improve code generation for monomorphic loads, we seem to
trigger the dead node resurrection.

R=epertoso@chromium.org
BUG=v8:4930,v8:5141

Review-Url: https://codereview.chromium.org/2191823002
Cr-Commit-Position: refs/heads/master@{#38127}
2016-07-28 09:57:01 +00:00
zhengxing.li
1554e29dd5 X87: [heap] Reland "Remove black pages and use black areas instead.".
port 9e37a07c8d (r38057)

  original commit message:

BUG=

Review-Url: https://codereview.chromium.org/2185363003
Cr-Commit-Position: refs/heads/master@{#38126}
2016-07-28 09:53:25 +00:00
mstarzinger
fcdcff5605 [interpreter] Add test for OSR from within generators.
R=neis@chromium.org
TEST=mjsunit/ignition/osr-from-generator
BUG=v8:4764

Review-Url: https://codereview.chromium.org/2188723005
Cr-Commit-Position: refs/heads/master@{#38125}
2016-07-28 09:49:58 +00:00
Alexander.Gilday2
286e2b14a5 [turbolizer] Add support for showing perf profiling information.
perf-turbo.py merges a perf data file and a turbofan trace file into a
single json object which can then be piped to a file and uploaded to
turbolizer to display the profiling data in the disassembly. With the
changes, turbolizer now shows the event counts for instruction in
percentage form and with heatmap-stype colouring. Multiple different
events can be recorded at once with a new drop-down menu to select which
event to view the counts of. The documentation has been updated with
instructions. Using the script is optional and turbolizer retains
previous functionality if a trace without profiling data is uploaded.

BUG=None

Review-Url: https://codereview.chromium.org/2174803002
Cr-Commit-Position: refs/heads/master@{#38124}
2016-07-28 09:42:38 +00:00
dcheng
606e1ada17 Force v8::internal::HeapObjectsSet::SetTag to be out-of-lined.
This reduces the size of GetStrongGcSubrootName() from 77 KB to 10KB.

BUG=5240

Review-Url: https://codereview.chromium.org/2189633003
Cr-Commit-Position: refs/heads/master@{#38123}
2016-07-28 09:21:12 +00:00
zhengxing.li
d80772270f X87: Reland of [interpreter] Add explicit OSR polling bytecode. (patchset #1 id:1 of https://codereview.chromium.org/2184553003/ ).
port e1ad114ed2 (r38056)

  original commit message:
  Reason for revert:
  Fix has been landed.

  Original issue's description:
  > Revert of [interpreter] Add explicit OSR polling bytecode. (patchset #6 id:100001 of https://codereview.chromium.org/2172233002/ )
  >
  > Reason for revert:
  > Bunch of breakages. Maybe bad interaction with e520e5da55 ?
  >
  > E.g.:
  > https://build.chromium.org/p/client.v8/builders/V8%20Linux64/builds/11607
  >
  > Original issue's description:
  > > [interpreter] Add explicit OSR polling bytecode.
  > >
  > > This adds an explicit {OsrPoll} bytecode into every loop header which
  > > triggers on-stack replacement when armed. Note that each such bytecode
  > > stores the static loop depths as an operand, and hence can be armed for
  > > specific loop depths.
  > >
  > > This also adds builtin code that triggers OSR compilation and switches
  > > execution over to optimized code in case compilation succeeds. In case
  > > compilation fails, the bytecode dispatch just continues unhindered.
  > >
  > > R=rmcilroy@chromium.org
  > > TEST=mjsunit/ignition/osr-from-bytecode
  > > BUG=v8:4764
  > >
  > > Committed: https://crrev.com/a55beb68e0ededb3773affa294a71edc50621458
  > > Cr-Commit-Position: refs/heads/master@{#38043}
  >
  > TBR=rmcilroy@chromium.org,mstarzinger@chromium.org
  > # Skipping CQ checks because original CL landed less than 1 days ago.
  > NOPRESUBMIT=true
  > NOTREECHECKS=true
  > NOTRY=true
  > BUG=v8:4764
  >
  > Committed: https://crrev.com/439aa2c6d708bfd95db725bd6f97c4c49bbc51fc
  > Cr-Commit-Position: refs/heads/master@{#38044}

BUG=

Review-Url: https://codereview.chromium.org/2190903002
Cr-Commit-Position: refs/heads/master@{#38122}
2016-07-28 09:17:26 +00:00
jochen
a811808432 Add a jss gdb macro that skips over the jitted stack in gdb
Use it like this:

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7f50d02c4700 (LWP 8152)]
base::debug::(anonymous namespace)::DebugBreak ()
    at ../../base/debug/debugger_posix.cc:230
230     }
(gdb) bt
    at ../../base/debug/debugger_posix.cc:230
...
    args_object=0x7f50d02bfe00, isolate=0x2f001c9e2020)
    at ../../v8/src/builtins/builtins-api.cc:123
...
(gdb) jss
(gdb) bt
    isolate=0x2f001c9e2020, is_construct=false, target=..., receiver=...,
    argc=1, args=0x7f50d02c0518, new_target=...)
    at ../../v8/src/execution.cc:111
    isolate=0x2f001c9e2020, callable=..., receiver=..., argc=1,
    argv=0x7f50d02c0518) at ../../v8/src/execution.cc:168
...

R=yangguo@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2186013002
Cr-Commit-Position: refs/heads/master@{#38121}
2016-07-28 09:06:39 +00:00
machenbach
f3eff9344c Fix gitignores after moving inspector_protocol
BUG=chromium:580337
TBR=yangguo@chromium.org, jochen@chromium.org, pfeldman@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2192563003
Cr-Commit-Position: refs/heads/master@{#38120}
2016-07-28 09:06:38 +00:00
zhengxing.li
691e6d39e7 X87: [turbofan] Change Float64Max/Float64Min to JavaScript semantics.
port ba092fb09a (r37971)

  original commit message:
  So far we don't have a useful way to inline Math.max or Math.min in
  TurboFan optimized code. This adds new operators NumberMax and NumberMin
  and changes the Float64Max/Float64Min operators to have JavaScript
  semantics instead of the C++ semantics that it had previously.

  This also removes support for recognizing the tenary case in the
  CommonOperatorReducer, since that doesn't seem to have any positive
  impact (and actually doesn't show up in regular JavaScript, where
  people use Math.max/Math.min instead).

BUG=

  Drive-by-fix: Also nuke the unused Float32Max/Float32Min operators.
Review-Url: https://codereview.chromium.org/2187463005

Cr-Commit-Position: refs/heads/master@{#38119}
2016-07-28 09:02:55 +00:00
bmeurer
f8ded1125f [turbofan] Eliminate redundant CheckString based on types.
If the input to a CheckString is already a String, then the check
is redundant.

R=epertoso@chromium.org

Review-Url: https://codereview.chromium.org/2190833002
Cr-Commit-Position: refs/heads/master@{#38118}
2016-07-28 08:58:18 +00:00
machenbach
37b20704d2 [gn] Add missing deps to inspector_protocol_parser_test
This is required for all executables.

BUG=chromium:580337
TBR=yangguo@chromium.org, jochen@chromium.org, pfeldman@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2183313007
Cr-Commit-Position: refs/heads/master@{#38117}
2016-07-28 08:23:23 +00:00
neis
d4e5851bad Make Array.prototype[Symbol.iterator] non-constructible.
R=adamk@chromium.org
BUG=v8:5237

Review-Url: https://codereview.chromium.org/2188753002
Cr-Commit-Position: refs/heads/master@{#38116}
2016-07-28 08:19:55 +00:00
mstarzinger
7f6839d642 [test] Remove uses of runtime zone from tests.
R=mvstanton@chromium.org

Review-Url: https://codereview.chromium.org/2190623002
Cr-Commit-Position: refs/heads/master@{#38115}
2016-07-28 08:06:14 +00:00
jochen
3ca98851df Add a prepare to parse step to CompilerDispatcherJob
R=marja@chromium.org
BUG=v8:5215

Review-Url: https://codereview.chromium.org/2191443003
Cr-Commit-Position: refs/heads/master@{#38114}
2016-07-28 07:49:17 +00:00
machenbach
784a636f3e [swarming] Remove hard-coded shared library configs
The isolate_driver automatically adds referenced shared
libraries. They don't need to be listed explicitly.

The hard-coded location blocks the GN transition
as the library location is different in GYP and GN.

BUG=chromium:474921
NOTRY=true

Review-Url: https://codereview.chromium.org/2190543003
Cr-Commit-Position: refs/heads/master@{#38113}
2016-07-28 07:18:15 +00:00
marja
8ae2fd8ddc Background parsing: Ensure we don't use the Isolate on a background thread.
BUG=

Review-Url: https://codereview.chromium.org/2182493006
Cr-Commit-Position: refs/heads/master@{#38112}
2016-07-28 07:14:42 +00:00
yangguo
f7fa02f8b2 [inspector] add inspector protocol parser test build target for GYP.
This adds the build target inspector_protocol_parser_test, which depends
on several more inspector protocol related targets. The resulting
gtest executable runs, but has failures that have to be fixed.

GN build configuration will follow.

A copy of v8-inspector/js_protocol.json has been included to be able to
use it before the actual migration.

BUG=chromium:580337

Review-Url: https://codereview.chromium.org/2184733002
Cr-Commit-Position: refs/heads/master@{#38111}
2016-07-28 06:57:03 +00:00
ddchen
0a9d4003c7 [wasm] Add support for multiple indirect function tables
This patch updates internal data structures used by V8 to support
multiple indirect function tables (WebAssembly/design#682). But, since
this feature is post-MVP, the functionality is not directly exposed and
parsing/generation of WebAssembly is left unchanged. Nevertheless, it
is being used in an experiment to implement fine-grained control flow
integrity based on C/C++ types.

BUG=

Review-Url: https://codereview.chromium.org/2174123002
Cr-Commit-Position: refs/heads/master@{#38110}
2016-07-28 04:57:18 +00:00
v8-autoroll
ff683feda8 Update V8 DEPS.
Rolling v8/build to 0a8d7715646009e2d0935f72462c481be22c6de4

Rolling v8/tools/mb to 1d3f4544cadd78d89c8c71c37ef5474ac2b1e297

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

Review-Url: https://codereview.chromium.org/2191643003
Cr-Commit-Position: refs/heads/master@{#38109}
2016-07-28 03:22:55 +00:00
machenbach
366b00cfbe Revert of MIPS: Fix mksnapshot on big-endian. (patchset #3 id:40001 of https://codereview.chromium.org/2172653002/ )
Reason for revert:
Blocks the roll:
https://codereview.chromium.org/2189443003/

Doesn't work with the last chromium gyp bot.

Original issue's description:
> MIPS: Fix mksnapshot on big-endian.
>
> Paritally revert standalone.gypi changes in a451bd1a68 and introduce a new separate variable for the mkpeephole.
>
> On big-endian MIPS, qemu is used to build the snapshot,
> because there's no simulator support for big-endian MIPS.
>
> BUG=
>
> Committed: https://crrev.com/928d2395c3fdf836cf9961cde96e6b274a6b1e20
> Cr-Commit-Position: refs/heads/master@{#38103}

TBR=oth@chromium.org,machenbach@google.com,akos.palfi@imgtec.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review-Url: https://codereview.chromium.org/2182633010
Cr-Commit-Position: refs/heads/master@{#38108}
2016-07-27 19:10:45 +00:00
mstarzinger
f402d66cd2 [turbofan] Remove access to FunctionType from call interface.
This removes the ability to directly access the {FunctionType} stored
within a {CallInterfaceDescriptor}. The field is in the process of being
deprecated and should no longer be accessed.

R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2191533002
Cr-Commit-Position: refs/heads/master@{#38107}
2016-07-27 17:29:55 +00:00
bmeurer
5340f76758 [turbofan] Add support for String.prototype.charCodeAt/charAt.
Introduce an appropriate StringCharCodeAt simplified operator and use
that to optimize the String.prototype.charCodeAt/.charAt builtins.

R=epertoso@chromium.org

Review-Url: https://codereview.chromium.org/2180373005
Cr-Commit-Position: refs/heads/master@{#38106}
2016-07-27 17:29:54 +00:00
qyearsley
7a3d6c082f Update blink try bot names in v8 repo.
This is intended to be submitted just after http://crrev.com/2174553002, which renames these builders.

BUG=590036
NOTRY=true

Review-Url: https://codereview.chromium.org/2181133002
Cr-Commit-Position: refs/heads/master@{#38105}
2016-07-27 16:39:09 +00:00
fmeawad
821c3e563c Reland [Tracing] V8 Tracing Controller
V8 has had a trace event macro interface for while, but without a tracing
controller a standalone V8 would be unable to collect traces.

This CL introduces a complete Tracing Controller system for V8.
It is fully function except that it does not yet store trace event args.

This CL has a few components,
The tracing controller itself, contributed by the author of this CL
The Trace config (including the parser), contributed by lpy@
The Trace Object, Trace Writer, and Trace Buffer are all contributed by rksang@

BUG=v8:4561
LOG=N

The original CL was failing the V8 Arm Builder:
https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20builder/builds/2456
and the V8 Mips Builder:
https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/2506

The failure is due to undefined behavior of CHECK_EQ of 2 const char*

Fix in patch #1

Committed: https://crrev.com/3d598452679ce208ad9b2f48e0fb3fae352ce375
Cr-Commit-Position: refs/heads/master@{#38073}

patch from issue 2137013006 at patchset 200001 (http://crrev.com/2137013006#ps200001)

Review-Url: https://codereview.chromium.org/2183923004
Cr-Commit-Position: refs/heads/master@{#38104}
2016-07-27 16:21:54 +00:00
akos.palfi
928d2395c3 MIPS: Fix mksnapshot on big-endian.
Paritally revert standalone.gypi changes in a451bd1a68 and introduce a new separate variable for the mkpeephole.

On big-endian MIPS, qemu is used to build the snapshot,
because there's no simulator support for big-endian MIPS.

BUG=

Review-Url: https://codereview.chromium.org/2172653002
Cr-Commit-Position: refs/heads/master@{#38103}
2016-07-27 14:49:43 +00:00
Miran.Karic
9a1832a829 Set correct default icu data file for big endian
Default icu data file for all architectures was set to icudtl.dat, for
big endian this should be icudtb.dat. This will fix intl tests for big
endian once v8 rolls to a newer version of icu that supports big endian.

BUG=
TEST=intl/*

Review-Url: https://codereview.chromium.org/2182043002
Cr-Commit-Position: refs/heads/master@{#38102}
2016-07-27 14:38:54 +00:00
klaasb
27a9b032ab [interpreter] Don't keep postfix result if only visited for effect
Remove TODO to perform same optimization as AstGraphBuilder.
When visiting for effect in a postfix count operation, don't
keep the intermediate result of ToNumber.

BUG=v4:4280
LOG=n

Review-Url: https://codereview.chromium.org/2187823002
Cr-Commit-Position: refs/heads/master@{#38101}
2016-07-27 13:52:06 +00:00
oth
31eefa438a [interpreter] Use ForInFilter stub.
BUG=v8:4280
LOG=N

Review-Url: https://codereview.chromium.org/2187713004
Cr-Commit-Position: refs/heads/master@{#38100}
2016-07-27 13:31:30 +00:00
jacob.bramley
cc00ba2df2 [arm] Clean up the use of UNALIGNED_ACCESSES.
All supported ARM targets support unaligned accesses for integer
accesses. This patch removes the remnants of support for older targets.

BUG=v8:5077

Review-Url: https://codereview.chromium.org/2184823002
Cr-Commit-Position: refs/heads/master@{#38099}
2016-07-27 13:28:02 +00:00
mlippautz
53dde335b9 [heap] ObjectStats: Fixes for recording HashTable overhead
- Overhead for HashTable was not accounted in bytes
- Name table in typefeedback metadata changed

BUG=chromium:631094
R=hpayer@chromium.org

Review-Url: https://codereview.chromium.org/2190563002
Cr-Commit-Position: refs/heads/master@{#38098}
2016-07-27 13:24:16 +00:00
danno
834f53eb85 Re-classify incorrectly classified Hydrogen/Crankshaft stubs
Review-Url: https://codereview.chromium.org/2187463003
Cr-Commit-Position: refs/heads/master@{#38097}
2016-07-27 12:53:06 +00:00
klaasb
d1baa31e52 Fix generate-bytecode-expectations crash
https://codereview.chromium.org/2176143002 removed parsing of a golden
file header option but did not remove the option.

BUG=
LOG=n

Review-Url: https://codereview.chromium.org/2189583002
Cr-Commit-Position: refs/heads/master@{#38096}
2016-07-27 12:23:13 +00:00
danno
1130e9c85b [stubs] Port CreateAllocationSiteStub to Turbofan
BUG=608675

Review-Url: https://codereview.chromium.org/2184073002
Cr-Commit-Position: refs/heads/master@{#38095}
2016-07-27 12:18:17 +00:00