Commit Graph

49101 Commits

Author SHA1 Message Date
Sigurd Schneider
a2d61597ca Reland "[turbofan] Inline Number constructor in certain cases"
This is a reland of 9eca23e9ed

Adds a deopt continuation, which fixes JavaScript stack traces
to contain the number constructor after inlining.

Original change's description:
> [turbofan] Inline Number constructor in certain cases
>
> This CL adds inlining for the Number constructor if new.target is not
> present. The lowering is BigInt compatible, i.e. it converts BigInts to
> numbers.
>
> Bug: v8:7904
> Change-Id: If03b9f872d82e50b6ded7709069181c33dc44e82
> Reviewed-on: https://chromium-review.googlesource.com/1118557
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54454}

Bug: v8:7904
Change-Id: Ic416e5ba81fa3a0f59ae4afa80df83c46a759487
Reviewed-on: https://chromium-review.googlesource.com/1146581
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54609}
2018-07-23 13:17:19 +00:00
Dan Elphick
108bef1603 [cleanup] Fix use of deprecated Concat in d8
Use the Isolate* version of Concat.

Bug: v8:7754
Change-Id: I3d16405032ab0690c57e2ba615cac60d8fa92464
Reviewed-on: https://chromium-review.googlesource.com/1146578
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54608}
2018-07-23 10:38:10 +00:00
Ross Mcilroy
7e5905fd9c [cleanup] Replace deprecated calls to PrimitiveArray.Get/Set.
Replace with isolate versions

BUG=v8:7754

Change-Id: I69cf1e0d4cba6d68a3983c0dba346bfc1bfc9619
Reviewed-on: https://chromium-review.googlesource.com/1146182
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54607}
2018-07-23 09:45:19 +00:00
jgruber
c0766d6640 [regexp] Typify RegExpExecInternal
Bug: v8:7754
Change-Id: Ie58571682f4dff76108180e8a707159997f7abfa
Reviewed-on: https://chromium-review.googlesource.com/1145277
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54606}
2018-07-23 09:18:19 +00:00
jgruber
1f82fb5401 [builtins] Fix Code::contains for off-heap trampolines
Code::contains should return true in two cases: either the given
address is within the off-heap instruction stream, or within the
trampoline's instruction stream.

This CL fixes the second case. One effect is that code printed through
the jco gdb macro again displays the builtin name correctly when given
a trampoline pc.

Drive-by: a more efficient Builtins::Lookup for embedded builtins.

Bug: v8:6666,v8:7969
Change-Id: I54f5e5881fa2aed2546b9e62aa4b9390ad21b895
Reviewed-on: https://chromium-review.googlesource.com/1146566
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54605}
2018-07-23 09:10:19 +00:00
Ross Mcilroy
64e3912f10 [cleanup] Remove deprecated calls to Write[OneByte/Utf8].
Replace with isolate version.

BUG=v8:7754

Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Iac7091b983960d22b892074c5fd0a97dee9025c9
Reviewed-on: https://chromium-review.googlesource.com/1146332
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54604}
2018-07-23 09:01:08 +00:00
Simon Zünd
bc017d81d6 [array] Change array indices handling for proxies in sort preprocessing
For JSProxies we filled a FixedArray with the numbers from 0 to
length - 1. Because all indices were assumed to be Smis, large array
indices on Proxies were not handled correctly.

R=jgruber@chromium.org

Bug: chromium:866314
Change-Id: I6a792e800f31617a6092b219ec82b0e05a83bf7b
Reviewed-on: https://chromium-review.googlesource.com/1146562
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#54603}
2018-07-23 09:00:06 +00:00
v8-ci-autoroll-builder
17071e8720 Update V8 DEPS.
Rolling v8/build: 6f5ee86..181a988

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/ddcfa34..9e8a0b2

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

Change-Id: I396cf06b2c5a27acb9136da5c17bce3df616b860
Reviewed-on: https://chromium-review.googlesource.com/1146157
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#54602}
2018-07-23 08:58:59 +00:00
Simon Zünd
a298405a68 [cleanup] Replace ZoneList with ZoneChunkList in DeoptimizationInfo
Drive-by change: Add std::iterator_traits typedefs to ZoneChunkListIterator
so we can use <algorithm>.

R=mstarzinger@chromium.org

Bug: v8:7754
Change-Id: Ib7d1c622fdb761fc99bea373dbdef206f15bd4a0
Reviewed-on: https://chromium-review.googlesource.com/1145075
Commit-Queue: Simon Zünd <szuend@google.com>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54601}
2018-07-23 08:57:49 +00:00
v8-ci-autoroll-builder
453038181a Update V8 DEPS.
Rolling v8/build: 385916c..6f5ee86

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d26f5c3..ddcfa34

Rolling v8/third_party/depot_tools: 3899f1b..7e3c67f

Rolling v8/third_party/fuchsia-sdk: 6215064..9a5d7ce

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

Change-Id: Ib443be36b0f43efd5049d33d8297f16044091eaa
Reviewed-on: https://chromium-review.googlesource.com/1146022
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#54600}
2018-07-21 03:50:54 +00:00
Rodrigo Bruno
2c4c2ad694 Avoiding re-externalization of strings.
Bug: chromium:845409
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I75bddcf0e8879d2161486f24d1cd4e46d8fe008d
Reviewed-on: https://chromium-review.googlesource.com/1139056
Commit-Queue: Rodrigo Bruno <rfbpb@google.com>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54599}
2018-07-20 18:02:59 +00:00
jgruber
d20883f441 [builtins] Introduce a symbol for each embedded builtin
This should improve the debugging experience since backtraces will
list the exact builtin instead of just 'embedded_blob'. An example
gdb backtrace:

 #0  <snip address> in Builtins_RegExpPrototypeExec ()
 #1  <snip address> in Builtins_ArgumentsAdaptorTrampoline ()
 <snip further frames>

Bug: v8:6666, v8:7722
Change-Id: Iafc995779903e7d7a980d66e7dad42938ac7d29e
Reviewed-on: https://chromium-review.googlesource.com/1145183
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54598}
2018-07-20 17:42:39 +00:00
Sigurd Schneider
039c18e19a Speculatively revert "[turboassembler] Introduce hard-abort mode"
This reverts commit a462a7854a.

Reason for revert: Breaks a TurboAssembler test:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm/7726

Original change's description:
> [turboassembler] Introduce hard-abort mode
> 
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
> 
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
> 
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
> 
> R=​mstarzinger@chromium.org
> 
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}

TBR=mstarzinger@chromium.org,clemensh@chromium.org

Change-Id: I60c011cfe262ccebbb9abf32699a9fe17e72a3c8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:863799
Reviewed-on: https://chromium-review.googlesource.com/1145431
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54597}
2018-07-20 17:28:49 +00:00
Sigurd Schneider
9741c7e32c Revert "[cleanup] Rename {kLastErrorMessage} to {kNumberOfReasons}"
This reverts commit 29379945b6.

Reason for revert: Needed for other revert:
https://chromium-review.googlesource.com/c/v8/v8/+/1145431

Original change's description:
> [cleanup] Rename {kLastErrorMessage} to {kNumberOfReasons}
> 
> The name {kLastErrorMessage} is misleading, as it's not actually the
> index of the last message (or reason), but one more (i.e. number of
> messages / reasons). Thus this renaming.
> 
> R=​mstarzinger@chromium.org
> 
> Bug: v8:7754
> Change-Id: Id21edcecac84c0e6068423c6124ef2881116dc7c
> Reviewed-on: https://chromium-review.googlesource.com/1145305
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54593}

TBR=mstarzinger@chromium.org,clemensh@chromium.org

Change-Id: I2af83f4a2299e05ad9bcacfe69c0b483fd1488de
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7754
Reviewed-on: https://chromium-review.googlesource.com/1145520
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54596}
2018-07-20 17:27:41 +00:00
Caitlin Potter
b6f7ea5805 [runtime] use new CloneObject bytecode for some ObjectLiteralSpread cases
As discussed in
https://docs.google.com/document/d/1sBdGe8RHgeYP850cKSSgGABTyfMdvaEWLy-vertuTCo/edit?ts=5b3ba5cc#,

this CL introduces a new bytecode (CloneObject), and a new IC type.

In this prototype implementation, the type feedback looks like the
following:

Uninitialized case:
  { uninitialized_sentinel, uninitialized_sentinel }
Monomorphic case:
  { weak 'source' map, strong 'result' map }
Polymorphic case:
  { WeakFixedArray with { weak 'source' map, strong 'result' map }, cleared value }
Megamorphic case:
  { megamorphic_sentinel, cleared_Value }

In the fast case, Object cloning is done by allocating an object with
the saved result map, and a shallow clone of the fast properties from
the source object, as well as cloned fast elements from the source object.
If at any point the fast case can't be taken, the IC transitions to the
slow case and remains there.

This prototype CL does not include any TurboFan optimization, and the
CloneObject operation is merely reduced to a stub call.

It may still be possible to get some further improvements by somehow
incorporating compile-time boilerplate elements into the cloned object,
or simplifying how the boilerplate elements are inserted into the
object.

In terms of performance, we improve the ObjectSpread score in JSTests/ObjectLiteralSpread/
by about 8x, with substantial improvements over the Babel and ObjectAssign scores.

R=gsathya@chromium.org, mvstanton@chromium.org, rmcilroy@chromium.org, neis@chromium.org, bmeurer@chromium.org
BUG=v8:7611

Change-Id: I79e1796eb77016fb4feba0e1d3bb9abb348c183e
Reviewed-on: https://chromium-review.googlesource.com/1127472
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54595}
2018-07-20 16:48:59 +00:00
Simon Zünd
8fb0db93fb [cleanup] Replace ZoneList in SafePointTableBuilder::Emit
R=petermarshall@chromium.org

Bug: v8:7754
Change-Id: I045daa428a7830fa110c74d6636921be36ca1dbe
Reviewed-on: https://chromium-review.googlesource.com/1145278
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#54594}
2018-07-20 15:24:19 +00:00
Clemens Hammacher
29379945b6 [cleanup] Rename {kLastErrorMessage} to {kNumberOfReasons}
The name {kLastErrorMessage} is misleading, as it's not actually the
index of the last message (or reason), but one more (i.e. number of
messages / reasons). Thus this renaming.

R=mstarzinger@chromium.org

Bug: v8:7754
Change-Id: Id21edcecac84c0e6068423c6124ef2881116dc7c
Reviewed-on: https://chromium-review.googlesource.com/1145305
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54593}
2018-07-20 15:12:49 +00:00
Clemens Hammacher
a462a7854a [turboassembler] Introduce hard-abort mode
For checks and assertions (mostly for debug code, like stack alignment
or zero extension), we had two modes: Emit a call to the {Abort}
runtime function (the default), and emit a debug break (used for
testing, enabled via --trap-on-abort).
In wasm, where we cannot just call a runtime function because code must
be isolate independent, we always used the trap-on-abort behaviour.
This causes problems for our fuzzers, which do not catch SIGTRAP, and
hence do not detect debug code failures.

This CL introduces a third mode ("hard abort"), which calls a C
function via {ExternalReference}. The C function still outputs the
abort reason, but does not print the stack trace. It then aborts via
"OS::Abort", just like the runtime function.
This will allow fuzzers to detect the crash and even find a nice error
message.

Even though this looks like a lot of code churn, it is actually not.
Most added lines are new tests, and other changes are minimal.

R=mstarzinger@chromium.org

Bug: chromium:863799
Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
Reviewed-on: https://chromium-review.googlesource.com/1142163
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54592}
2018-07-20 14:44:29 +00:00
Michael Starzinger
bced36d203 [wasm] Remove some dead module decoder entry points.
R=clemensh@chromium.org
BUG=v8:7754

Change-Id: Ia4c2fb2d87c8a5de96fa9f1f0621d21ae3eda611
Reviewed-on: https://chromium-review.googlesource.com/1145181
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54591}
2018-07-20 13:56:04 +00:00
Clemens Hammacher
4b4125778a [iwyu] Add script to check that headers can be included in isolation
The most important point of IWYU (include-what-you-use) is that each
header includes everything it is using, so that whoever includes that
header does not need to additionally include other things.
This CL adds a script which generates files to automatically check this.
It is automatically invoked during "gclient runhooks" if the
"check_v8_header_includes" variable is set. This script generates a
number of .cc files in the "check-header-includes" directory, together
with a "sources.gni" file which lists all the generated cc files. Each
file includes one header.
If additionally the gn args "v8_check_header_includes" is set, this gni
file is included, and all the generated CC files will be compiled. This
will detect violations of the aforementioned IWYU rule.

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

Bug: v8:7754, v8:7965
Change-Id: Id1cf256507052c3a9ea82f8c80ea1c0385457e31
Reviewed-on: https://chromium-review.googlesource.com/1145199
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54590}
2018-07-20 13:54:59 +00:00
Marja Hölttä
eb20326932 [iwyu] Move function definitions to string-builder.cc
string-builder.h was using functions defined in *-inl.h and that's not allowed.

BUG=v8:7754,v8:7490

Change-Id: I442ff761f3a5799b60c0d02f7130bf694dca9b1b
Reviewed-on: https://chromium-review.googlesource.com/1145185
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54589}
2018-07-20 13:29:19 +00:00
Simon Zünd
e3def872bc [cleanup] Replace ZoneList in MachO class
R=petermarshall@chromium.org

Bug: v8:7754
Change-Id: I5dde8026c80f279606c4c35c546dd41a2872aa3b
Reviewed-on: https://chromium-review.googlesource.com/1145189
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#54588}
2018-07-20 13:15:38 +00:00
Georg Neis
1704bf7b58 [turbofan] Remove unnecessary argument of a function.
Change-Id: Iadfec0133d45f6539fd0b2b5fbea0e39ab7dfc29
Reviewed-on: https://chromium-review.googlesource.com/1145180
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54587}
2018-07-20 13:07:18 +00:00
Simon Zünd
495b338d13 [cleanup] Replace ZoneList with ZoneChunkList in ELF class
R=petermarshall@chromium.org

Bug: v8:7754
Change-Id: I70e433cda81629496aef0b5b2c8b379787765c31
Reviewed-on: https://chromium-review.googlesource.com/1144932
Commit-Queue: Simon Zünd <szuend@google.com>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54586}
2018-07-20 13:05:18 +00:00
Michael Achenbach
23cb219fb2 [build] Add MB config for deprecation warning bot
TBR=yangguo@chromium.org
NOTRY=true

Bug: v8:7963
Change-Id: I1a91047b2a3c7d128f3b01a0970ce53a63c196d6
Reviewed-on: https://chromium-review.googlesource.com/1145187
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54585}
2018-07-20 11:56:17 +00:00
Michael Starzinger
23635288ee [cleanup] Replace ZoneList in CompiledReplacement.
R=petermarshall@chromium.org
BUG=v8:7754

Change-Id: I44d5c808195b676c05f7d4837ad18cd33c377840
Reviewed-on: https://chromium-review.googlesource.com/1145067
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54584}
2018-07-20 11:53:06 +00:00
Marja Hölttä
ff5cafd031 [iwyu] api.h iwyu
This reduces the build steps from touching api.h: 269 -> 156

BUG=v8:7754,v8:7490

Change-Id: I75abaeea4cc78027a47304ff9b9f6b12bdb2b75e
Reviewed-on: https://chromium-review.googlesource.com/1144929
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54583}
2018-07-20 11:49:02 +00:00
Michael Starzinger
2471103bbf [wasm] Move {lower_simd} flag into {ModuleEnv} structure.
R=titzer@chromium.org
BUG=v8:7754

Change-Id: Icf17677a3ca3c9be153b68a9a6f939259e7b7b5f
Reviewed-on: https://chromium-review.googlesource.com/1143263
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54582}
2018-07-20 11:47:47 +00:00
Tobias Tebbi
29d08f1cd8 [third_party] remove antlr
Bug: v8:7754
Change-Id: Iffd3a2f665258032e2284e5cd700f9a3286618d1
Reviewed-on: https://chromium-review.googlesource.com/1145064
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54581}
2018-07-20 11:31:06 +00:00
Simon Zünd
7221681b7b [cleanup] Replace ZoneList with ZoneChunkList in regexp-macro-assembler
R=jgruber@chromium.org

Bug: v8:7754
Change-Id: Iec5f0a3f4f948a5f55c112324f4db68c69df2dbd
Reviewed-on: https://chromium-review.googlesource.com/1145061
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#54580}
2018-07-20 11:15:36 +00:00
Leszek Swirski
c43380fee9 [cleanup] Avoid accessing MemoryChunk directly to get Isolate
Adds an Isolate::FromWritableHeapObject method, with a bool return value
and Isolate* out parameter, and replace most accesses to Isolate via
MemoryChunk (which handle objectsin ROSpace rather than just failing) to
use that instead.

Bug: v8:7754
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Idb472a3d6037deed92e6fa8c8a7a1a14293e2462
Reviewed-on: https://chromium-review.googlesource.com/1144933
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54579}
2018-07-20 11:10:07 +00:00
Marja Hölttä
1baf105011 [objects.h splitting] Move JSGenerator
BUG=v8:7754,v8:5402

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I5306005e7d0fcfe188c9e0270a003c6e1098c9e9
Reviewed-on: https://chromium-review.googlesource.com/1144824
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54578}
2018-07-20 10:50:36 +00:00
v8-ci-autoroll-builder
db4d8e8e24 Update V8 DEPS.
Rolling v8/third_party/depot_tools: 20c1311..3899f1b

Rolling v8/tools/luci-go: abcd908..445d7c4

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

Change-Id: Ibd109913b42c2bd758855378ac61fb1a6a4f5cfe
Reviewed-on: https://chromium-review.googlesource.com/1145040
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#54577}
2018-07-20 10:47:56 +00:00
Sergiy Byelozyorov
587ffe5f79 [tools] Compile binaries w/o debug symbols in release configurations
R=machenbach@chromium.org

Bug: chromium:838864
Change-Id: I8242537847615848a3c2e6bdf39509c4692882ae
Reviewed-on: https://chromium-review.googlesource.com/1143474
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54576}
2018-07-20 10:35:56 +00:00
Andreas Haas
54723da771 [api] Remove the deprecated function EnsureEventLoopInitialized
This function has been deprecated for month by now.

R=ulan@chromium.org

Bug: v8:7754
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I19d1b41bad2849b7f3d4d6684dc6f0f80af081f0
Reviewed-on: https://chromium-review.googlesource.com/1144922
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54575}
2018-07-20 10:28:36 +00:00
Tobias Tebbi
ed6b11d53f [torque] a new self-contained parser for torque
Bug: v8:7793
Change-Id: I208edf856f0283d840358f3c11bab97af0397056
Reviewed-on: https://chromium-review.googlesource.com/1095192
Reviewed-by: Daniel Clifford <danno@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54574}
2018-07-20 10:18:25 +00:00
Toon Verwaest
0ff83e9799 [scanner] Always complete literals for possibly escaped FUTURE_STRICT_RESERVED_WORD
Bug: chromium:861953
Change-Id: Id3a57aca0b24c421ac959d69265c449eaa214c16
Reviewed-on: https://chromium-review.googlesource.com/1138083
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54573}
2018-07-20 10:00:25 +00:00
Michael Starzinger
35f674cc07 Reland "[wasm] Improve module code size sampling approach."
This is a reland of 0f2d22dd22

Original change's description:
> [wasm] Improve module code size sampling approach.
> 
> This samples module code sizes at GC time instead of during destruction.
> It hence makes sure that we also receive samples for long-lived modules
> which would otherwise die with the Isolate and never be finalized. Note
> that this approach is still biased and just a stop-gap until we have a
> sampling tick based on actual wall-clock time.
> 
> R=clemensh@chromium.org
> 
> Change-Id: I9558d383a5aada8876bc9cbf63baca771dbe5c28
> Reviewed-on: https://chromium-review.googlesource.com/1141866
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54554}

Change-Id: I1863e94bbe91c89c248ddf8fc700ff91bc3593b2
Reviewed-on: https://chromium-review.googlesource.com/1143344
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54572}
2018-07-20 09:24:46 +00:00
Yang Guo
2ebce7a814 [tools] opt out of metrics when fetching deps for node
R=machenbach@chromium.org

Change-Id: Ia50f6e637aec58e9c1bdd726c84b296fd71d7cbb
Reviewed-on: https://chromium-review.googlesource.com/1142767
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54571}
2018-07-20 09:05:55 +00:00
Sergiy Byelozyorov
1704f02cb7 Update V8 DEPS.
Rolling v8/build: abdb548..385916c

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/26d6aff..d26f5c3

Rolling v8/third_party/depot_tools: f9afc77..20c1311

Rolling v8/tools/clang: 5d1ce93..f30572c

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

Change-Id: Ic4e31241686394601dc3667f5159184f03789ef2
Reviewed-on: https://chromium-review.googlesource.com/1144645
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#54570}
2018-07-20 08:39:35 +00:00
Simon Zünd
e0a27861c7 [cleanup] Replace ZoneList with ZoneChunkList in ELFSymbolTable
Drive-by change: Add "at" method to ZoneChunkList.

R=petermarshall@chromium.org

Bug: v8:7754
Change-Id: I75f4e3f786640f2a53b467aab18abe01b4f5b360
Reviewed-on: https://chromium-review.googlesource.com/1144823
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#54569}
2018-07-20 08:20:32 +00:00
Georg Neis
1e34cead2b [turbofan] Relax assumptions of InitialMapDependency.
Chrome-crash tells me that occasionally a function gets stripped of an
initial map entirely (e.g. report 917de3c31d0e0d9b).

R=jarin@chromium.org

Change-Id: Ie0103695c4801a4c2cbc488af91c3d580efe4eab
Reviewed-on: https://chromium-review.googlesource.com/1143483
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54568}
2018-07-20 08:19:26 +00:00
Sigurd Schneider
85cf39d4f9 [inspector] Fix memory leaks in inspector test
Bug: v8:7932
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ia29e9e62022f0820c3a5aaf48a7724b13b61b275
Reviewed-on: https://chromium-review.googlesource.com/1143186
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54567}
2018-07-20 07:22:15 +00:00
Jaroslav Sevcik
08caf18c58 [runtime] Always pretenure boilerplates.
This will simplify the optimizing compiler (no need to pretenure
COW arrays when compiling).

Bug: v8:7790
Change-Id: I7502f43c6b6f7e10bce8536352462731083b5bef
Reviewed-on: https://chromium-review.googlesource.com/1143466
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54566}
2018-07-20 04:37:08 +00:00
Deepti Gandluri
84efdf0249 [wasm] Fix AtomicStores to not clobber the output register
Currently AtomicStores use AtomicExchange to store to memory, but
AtomicExchange produces an output that is ignored by the AtomicStore
visitor, a side effect of this is that a register already in use gets
overwritten by the output of the exchange.

BUG:v8:7602

Change-Id: I4ec3107a0a27503611e349e6f56ca9492d05d9f8
Reviewed-on: https://chromium-review.googlesource.com/1134576
Reviewed-by: Ben Smith <binji@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54565}
2018-07-19 22:16:06 +00:00
Tobias Tebbi
d2701715f8 [torque] disallow mostly unsupported vararg macros
Bug: v8:7929 v8:7793
Change-Id: I7d9cdd0fb3e36ae6e81683cc4c3746f6ea119d15
Reviewed-on: https://chromium-review.googlesource.com/1138077
Reviewed-by: Daniel Clifford <danno@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54564}
2018-07-19 20:35:46 +00:00
Dan Elphick
ec52bf56a5 [cleanup] Fix use of deprecated methods
Uses the new Isolate version of methods.

Bug: v8:7754
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I1a38dd61d10899ae33ef796f4f443b11640315c2
Reviewed-on: https://chromium-review.googlesource.com/1143861
Commit-Queue: Dan Elphick <delphick@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54563}
2018-07-19 19:43:46 +00:00
Tobias Sargeant
af0bd71140 Fix a trivial typo in grokdump.py
Change-Id: I5977c58d7d39f5f13352234f0d016c47ce9be133
Reviewed-on: https://chromium-review.googlesource.com/1143465
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Tobias Sargeant <tobiasjs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54562}
2018-07-19 16:46:14 +00:00
Junliang Yan
00b00201f0 [hashtable] Fix SmallOrderedHashTableAllocate test
CHECK is accessing 1 byte across object boundary because
*expect and *actual will return the object address with
tag. And memcmp should return 0 if we expect (expected == actual)

R=cbruni@chromium.org, gsathya@chromium.org, ishell@chromium.org

Bug: v8:6443, v8:7569
Change-Id: I316e450a80400cea4c9394dbe470932a1f30cea5
Reviewed-on: https://chromium-review.googlesource.com/1142351
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#54561}
2018-07-19 16:36:24 +00:00
Michael Starzinger
d67e25e5e6 [wasm] Construct {WasmCompilationUnit} without Isolate.
R=clemensh@chromium.org

Change-Id: Ib4f84d9b0bb2c54d5e1743c34b4034b14cb1152a
Reviewed-on: https://chromium-review.googlesource.com/1143188
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54560}
2018-07-19 15:26:09 +00:00