bmeurer [Wed, 12 Aug 2015 12:01:21 +0000 (05:01 -0700)]
[compiler] Remove broken support for undetectable strings.
Support for undetectable strings was officially dropped in
https://codereview.chromium.org/
916753002, but the compilers
weren't fixed properly.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1287983002
Cr-Commit-Position: refs/heads/master@{#30132}
mstarzinger [Wed, 12 Aug 2015 11:14:02 +0000 (04:14 -0700)]
Remove grab-bag includes of v8.h from debugger.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1283023002
Cr-Commit-Position: refs/heads/master@{#30131}
mstarzinger [Wed, 12 Aug 2015 11:12:53 +0000 (04:12 -0700)]
Remove grab-bag includes of v8.h from full codegen.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1283653004
Cr-Commit-Position: refs/heads/master@{#30130}
bmeurer [Wed, 12 Aug 2015 11:11:32 +0000 (04:11 -0700)]
[runtime] Simplify CHECK_OBJECT_COERCIBLE.
Don't use IS_NULL_OR_UNDEFINED() for CHECK_OBJECT_COERCIBLE() because it
will also return true for undetectable objects, but use IS_NULL() and
IS_UNDEFINED() directly, which will only return true for null or
undefined (which matches the semantics of the abstract operation
CheckObjectCoercible).
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1287033002
Cr-Commit-Position: refs/heads/master@{#30129}
yangguo [Wed, 12 Aug 2015 10:55:48 +0000 (03:55 -0700)]
Add more OWNERS and set noparent for some sub-directories.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
1285543002
Cr-Commit-Position: refs/heads/master@{#30128}
mstarzinger [Wed, 12 Aug 2015 10:28:34 +0000 (03:28 -0700)]
Realize IWYU pattern for frames-inl.h header.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1283183002
Cr-Commit-Position: refs/heads/master@{#30127}
mstarzinger [Wed, 12 Aug 2015 08:00:08 +0000 (01:00 -0700)]
Make list constructor usable without list-inl.h header.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1289553002
Cr-Commit-Position: refs/heads/master@{#30126}
mstarzinger [Wed, 12 Aug 2015 07:32:36 +0000 (00:32 -0700)]
Remove inline header includes from non-inline headers (1).
This tries to remove includes of "-inl.h" headers from normal ".h"
headers, thereby reducing the chance of any cyclic dependencies and
decreasing the average size of our compilation units.
Note that this change still leaves 7 violations of that rule in the
code. However there now is the "tools/check-inline-includes.sh" tool
detecting such violations.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1283033003
Cr-Commit-Position: refs/heads/master@{#30125}
yangguo [Wed, 12 Aug 2015 07:30:24 +0000 (00:30 -0700)]
Debugger: correctly ensure debug info in Debug::Break.
R=bmeurer@chromium.org
BUG=chromium:517594
LOG=N
Review URL: https://codereview.chromium.org/
1286143002
Cr-Commit-Position: refs/heads/master@{#30124}
thestig [Wed, 12 Aug 2015 04:40:21 +0000 (21:40 -0700)]
[turbofan] LoadGlobalParameters::slot_index() should just return an int.
Clang says: warning: 'const' type qualifier on return type has no effect
[-Wignored-qualifiers]
Review URL: https://codereview.chromium.org/
1284013003
Cr-Commit-Position: refs/heads/master@{#30123}
littledan [Tue, 11 Aug 2015 23:59:47 +0000 (16:59 -0700)]
Split function block scoping into a separate flag
In an initial attempt to implement sloppy mode lexical bindings,
functions were made lexically scoped in sloppy mode. However, the
ES2015 spec says that they need an additional hoisted var binding,
and further, it's not clear when we'll implement that behavior
or whether it's web-compatible.
This patch splits off function block scoping into a new, separate
flag called --harmony_sloppy_function. This change will enable the
possibility of testing and shipping this feature separately from
other block scoping-related features which don't have the same risks.
BUG=v8:4285
R=adamk
LOG=N
Review URL: https://codereview.chromium.org/
1282093002
Cr-Commit-Position: refs/heads/master@{#30122}
domenic [Tue, 11 Aug 2015 22:00:44 +0000 (15:00 -0700)]
Stage --harmony-array-includes
BUG=v8:3575
R=adamk@chromium.org, rossberg@chromium.org
LOG=Y
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/
1283963002
Cr-Commit-Position: refs/heads/master@{#30121}
littledan [Tue, 11 Aug 2015 21:30:26 +0000 (14:30 -0700)]
Use a new lexical context for sloppy-mode eval
In ES6, direct eval() in sloppy mode uses the enclosing function-level
("var") scope for var-style bindings and a new lexical scope for lexical
bindings like let and class. This patch implements that feature by making
lexical bindings that are directly within an EVAL_SCOPE be on the local
scope rather than the enclosing one.
BUG=v8:4288
LOG=Y
R=adamk
Review URL: https://codereview.chromium.org/
1274193004
Cr-Commit-Position: refs/heads/master@{#30120}
bmeurer [Tue, 11 Aug 2015 19:36:04 +0000 (12:36 -0700)]
[runtime] Store constructor function index on primitive maps.
This way we can greatly simplify the different variants of ToObject in
our codebase and make them more uniform and robust. Adding a new
primitive doesn't require finding and changing all those places again,
but it is sufficient to setup the constructor function index when
allocating the map.
We use the inobject properties field of Map, which is invalid primitive
maps anyway.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1276533003
Cr-Commit-Position: refs/heads/master@{#30119}
littledan [Tue, 11 Aug 2015 18:43:34 +0000 (11:43 -0700)]
Delete outdated comment about a bug which was fixed three years ago
R=adamk
BUG=chromium:135066
LOG=N
Review URL: https://codereview.chromium.org/
1279203002
Cr-Commit-Position: refs/heads/master@{#30118}
domenic [Tue, 11 Aug 2015 17:55:07 +0000 (10:55 -0700)]
Add includes method to typed arrays
R=littledan@chromium.org, adamk@chromium.org
BUG=v8:3575
LOG=Y
Review URL: https://codereview.chromium.org/
1283703004
Cr-Commit-Position: refs/heads/master@{#30117}
adamk [Tue, 11 Aug 2015 17:03:23 +0000 (10:03 -0700)]
run-tests.py: warn when no tests were run
The previous approach to this (in
1b1de2d22) did not work well with
bots that intentionally run no tests. But I think this warning message
is still useful for developers.
Review URL: https://codereview.chromium.org/
1281313004
Cr-Commit-Position: refs/heads/master@{#30116}
titzer [Tue, 11 Aug 2015 15:23:04 +0000 (08:23 -0700)]
Reland: [turbofan] Various fixes to allow unboxed doubles as arguments in registers and on the stack.
OCL: https://codereview.chromium.org/
1263033004/
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1284893002
Cr-Commit-Position: refs/heads/master@{#30115}
hpayer [Tue, 11 Aug 2015 14:51:55 +0000 (07:51 -0700)]
Respect old generation limit in large object space allocations.
Also remove unused max_capcity_ field in old spaces.
BUG=chromium:518028,chromium:504854
LOG=n
Review URL: https://codereview.chromium.org/
1284853003
Cr-Commit-Position: refs/heads/master@{#30114}
binji [Tue, 11 Aug 2015 14:28:06 +0000 (07:28 -0700)]
Use TimeTicks instead of Time in FutexEmulation::Wait.
BUG=v8:4357
R=machenbach@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1285723003
Cr-Commit-Position: refs/heads/master@{#30113}
vogelheim [Tue, 11 Aug 2015 13:56:15 +0000 (06:56 -0700)]
Revert of Debugger: clear shared function info list when recompiling for liveedit. (patchset #1 id:1 of https://codereview.chromium.org/
1270313003/ )
Reason for revert:
Sorry for revert, but this change breaks one of the webkit-unit-tests.
Example here: https://storage.googleapis.com/chromium-layout-test-archives/V8-Blink_Win/1178/layout-test-results/inspector/sources/debugger/live-edit-no-reveal-diff.txt
Not sure if the old expectations were right, or the new ones are. :)
Original issue's description:
> Debugger: clear shared function info list when recompiling for liveedit.
>
> R=bmeurer@chromium.org
> BUG=chromium:517594
> LOG=N
>
> Committed: https://crrev.com/
9eea3ef5147a5e15256093fb4c36a7598d60d128
> Cr-Commit-Position: refs/heads/master@{#30111}
TBR=bmeurer@chromium.org,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:517594
Review URL: https://codereview.chromium.org/
1279613008
Cr-Commit-Position: refs/heads/master@{#30112}
yangguo [Tue, 11 Aug 2015 12:00:38 +0000 (05:00 -0700)]
Debugger: clear shared function info list when recompiling for liveedit.
R=bmeurer@chromium.org
BUG=chromium:517594
LOG=N
Review URL: https://codereview.chromium.org/
1270313003
Cr-Commit-Position: refs/heads/master@{#30111}
mstarzinger [Tue, 11 Aug 2015 12:00:01 +0000 (05:00 -0700)]
Realize IWYU pattern for handles.h header.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1290453002
Cr-Commit-Position: refs/heads/master@{#30110}
mstarzinger [Tue, 11 Aug 2015 11:29:59 +0000 (04:29 -0700)]
[heap] Avoid inclusion of objects-visiting-inl.h header.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
1272933004
Cr-Commit-Position: refs/heads/master@{#30109}
bmeurer [Tue, 11 Aug 2015 10:47:24 +0000 (03:47 -0700)]
[stubs] Store typeof string on Oddballs.
First step to simplify the TypeofStub. This is similar to the
optimization that we use for ToNumber and ToString on Oddballs already.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1272763005
Cr-Commit-Position: refs/heads/master@{#30108}
bmeurer [Tue, 11 Aug 2015 09:45:25 +0000 (02:45 -0700)]
[simd.js] Single SIMD128_VALUE_TYPE for all Simd128Values.
There's no need to have one InstanceType per SIMD primitive type (this
will not scale long-term). Also reduce the amount of code duplication
and make it more robust wrt adding new SIMD types.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1273353003
Cr-Commit-Position: refs/heads/master@{#30107}
yangguo [Tue, 11 Aug 2015 09:32:27 +0000 (02:32 -0700)]
Remove redundant handle in ScopeIterator constructor.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1286653004
Cr-Commit-Position: refs/heads/master@{#30106}
yangguo [Tue, 11 Aug 2015 09:15:27 +0000 (02:15 -0700)]
Rewrite Error.prototype.toString in C++.
This avoids many back-and-forth calls to the runtime.
This also slightly changes the way we avoid getters. Previously, we circumvent getting the name property of ReferenceError, SyntaxError and TypeError due to crbug/69187 (in order to avoid leaking information from those errors through a 'name' getter installed on their prototypes). Now we do that for all errors created by V8.
R=jkummerow@chromium.org, rossberg@chromium.org
BUG=crbug:513472, crbug:69187
LOG=N
Review URL: https://codereview.chromium.org/
1281833002
Cr-Commit-Position: refs/heads/master@{#30105}
yangguo [Tue, 11 Aug 2015 08:20:29 +0000 (01:20 -0700)]
Debugger: correctly find closure to recompile eval for debugging.
R=mstarzinger@chromium.org
BUG=chromium:517592
LOG=N
Review URL: https://codereview.chromium.org/
1285793002
Cr-Commit-Position: refs/heads/master@{#30104}
saper [Tue, 11 Aug 2015 07:48:49 +0000 (00:48 -0700)]
Use static_cast<> for NULL (clang 3.7)
The following errors come up when compiling v8
with clang 3.7 on FreeBSD/amd64:
src/runtime/runtime-i18n.cc:629:37: error: reinterpret_cast from
'nullptr_t' to 'v8::internal::Smi *' is not allowed
local_object->SetInternalField(1, reinterpret_cast<Smi*>(NULL));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
test/cctest/test-heap.cc:131:20: error: reinterpret_cast from
'nullptr_t' to 'v8::internal::Object *' is not allowed
Handle<Object> n(reinterpret_cast<Object*>(NULL), isolate);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test/cctest/test-heap.cc:1989:18: error: reinterpret_cast from
'nullptr_t' to 'Address' (aka 'unsigned char *') is not
allowed
Address base = reinterpret_cast<Address>(NULL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+add myself to the AUTHORS file.
BUG=
Review URL: https://codereview.chromium.org/
1277353002
Cr-Commit-Position: refs/heads/master@{#30103}
mstarzinger [Tue, 11 Aug 2015 07:34:10 +0000 (00:34 -0700)]
Remove several grab-bag includes from the v8.h header.
This is the first step of turning the v8.h file into a normal header
instead of an include-the-world header. The new rule is that no other
header files are allowed to include v8.h, which is enforced by DEPS.
Also the number of includes inside the v8.h file has been drastically
reduced. Basically the last missing piece is the inclusion of the big
objects-inl.h file.
This in turn makes many headers follow the IWYU principle.
R=bmeurer@chromium.org,hpayer@chromium.org,titzer@chromium.org
Review URL: https://codereview.chromium.org/
1282503003
Cr-Commit-Position: refs/heads/master@{#30102}
yangguo [Tue, 11 Aug 2015 06:48:25 +0000 (23:48 -0700)]
Revert of [turbofan] Various fixes to allow unboxed doubles as arguments in registers and on the stack. (patchset #7 id:120001 of https://codereview.chromium.org/
1263033004/ )
Reason for revert:
This CL breaks MIPS (roll blocker).
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20mipsel%20-%20sim/builds/2061/steps/Check/logs/Run_Int32_Select_1
Original issue's description:
> [turbofan] Various fixes to allow unboxed doubles as arguments in registers and on the stack.
>
> R=jarin@chromium.org
> BUG=
>
> Committed: https://crrev.com/
71409be5395f867bbca0f6998bf6caa175cd8192
> Cr-Commit-Position: refs/heads/master@{#30091}
TBR=jarin@chromium.org,titzer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
1284853002
Cr-Commit-Position: refs/heads/master@{#30101}
v8-autoroll [Tue, 11 Aug 2015 03:25:06 +0000 (20:25 -0700)]
Update V8 DEPS.
Rolling v8/tools/clang to
b66ad18bb147f02b74b207358140371382b0ef35
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1281053003
Cr-Commit-Position: refs/heads/master@{#30100}
binji [Tue, 11 Aug 2015 00:17:01 +0000 (17:17 -0700)]
[d8 Workers] Make Worker prototype read-only
BUG=chromium:518747
R=mstarzinger@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1277543006
Cr-Commit-Position: refs/heads/master@{#30099}
adamk [Tue, 11 Aug 2015 00:11:58 +0000 (17:11 -0700)]
[es6] Add appropriate ToString call to String.prototype.normalize
R=littledan@chromium.org
BUG=v8:4304
LOG=n
Review URL: https://codereview.chromium.org/
1282013002
Cr-Commit-Position: refs/heads/master@{#30098}
machenbach [Mon, 10 Aug 2015 18:54:52 +0000 (11:54 -0700)]
Revert of Make run-tests.py warn when it's not testing anything (patchset #1 id:1 of https://codereview.chromium.org/
1283513003/ )
Reason for revert:
Some bots that don't run tests (by design) don't return the test results json anymore which makes the infrastructure side fail now.
Original issue's description:
> Make run-tests.py warn when it's not testing anything
>
> I've often been confused by an "all passed" run of the test script
> when it turned out that either all the tests I cared about were skipped
> or, more likely, I mistyped the name(s) of the tests I wanted to run.
> This patch aims to fix that (and gives a useful diagnostic for the
> "all matched tests were skipped" case).
>
> R=machenbach@chromium.org
> NOTRY=true
>
> Committed: https://crrev.com/
1b1de2d221a0ed23e529e91bf9fa3dc287acb2ca
> Cr-Commit-Position: refs/heads/master@{#30095}
TBR=jkummerow@chromium.org,adamk@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1283593005
Cr-Commit-Position: refs/heads/master@{#30097}
rmcilroy [Mon, 10 Aug 2015 18:22:07 +0000 (11:22 -0700)]
[interpreter] Fix nosnap build for interpreter table generation.
Moves the creation of the interpreter table early on during initialization
to ensure that even on nosnap builds it still gets allocated in the
first page.
BUG=v8:4280
LOG=N
Review URL: https://codereview.chromium.org/
1278413002
Cr-Commit-Position: refs/heads/master@{#30096}
adamk [Mon, 10 Aug 2015 18:16:23 +0000 (11:16 -0700)]
Make run-tests.py warn when it's not testing anything
I've often been confused by an "all passed" run of the test script
when it turned out that either all the tests I cared about were skipped
or, more likely, I mistyped the name(s) of the tests I wanted to run.
This patch aims to fix that (and gives a useful diagnostic for the
"all matched tests were skipped" case).
R=machenbach@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/
1283513003
Cr-Commit-Position: refs/heads/master@{#30095}
adamk [Mon, 10 Aug 2015 18:15:16 +0000 (11:15 -0700)]
Remove spammy "Network distribution disabled" message from default config
R=machenbach@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/
1279613005
Cr-Commit-Position: refs/heads/master@{#30094}
mstarzinger [Mon, 10 Aug 2015 17:06:04 +0000 (10:06 -0700)]
[heap] Avoid inclusion of heap internals in v8.h header.
R=mlippautz@chromium.org
Review URL: https://codereview.chromium.org/
1283833002
Cr-Commit-Position: refs/heads/master@{#30093}
mstarzinger [Mon, 10 Aug 2015 16:32:08 +0000 (09:32 -0700)]
[heap] Avoid overzealous inclusion of heap internal headers.
This is a first step towards constraining down the heap interface to
just the heap.h file. Note that many includes still leak through that
file to the global "src" directory, but there now is a single place
controlling which declarations leak that way. Especially inclusion of
inline header files within "heap" has been limited drastically.
R=hpayer@chromium.org,mlippautz@chromium.org
Review URL: https://codereview.chromium.org/
1281233003
Cr-Commit-Position: refs/heads/master@{#30092}
titzer [Mon, 10 Aug 2015 14:14:20 +0000 (07:14 -0700)]
[turbofan] Various fixes to allow unboxed doubles as arguments in registers and on the stack.
R=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1263033004
Cr-Commit-Position: refs/heads/master@{#30091}
mstarzinger [Mon, 10 Aug 2015 12:54:03 +0000 (05:54 -0700)]
[heap] Remove obsolete constructors from SemiSpaceIterator.
R=mlippautz@chromium.org
Review URL: https://codereview.chromium.org/
1284643003
Cr-Commit-Position: refs/heads/master@{#30090}
hpayer [Mon, 10 Aug 2015 12:31:00 +0000 (05:31 -0700)]
Filter out recorded slots of deoptimized code objects directly after deoptimization.
BUG=chromium:507211
LOG=n
Review URL: https://codereview.chromium.org/
1257653011
Cr-Commit-Position: refs/heads/master@{#30089}
bmeurer [Mon, 10 Aug 2015 12:07:11 +0000 (05:07 -0700)]
[crankshaft] Properly optimize %_ToObject.
R=yangguo@chromium.org
BUG=chromium:516423
LOG=n
Review URL: https://codereview.chromium.org/
1277153003
Cr-Commit-Position: refs/heads/master@{#30088}
rmcilroy [Mon, 10 Aug 2015 11:20:23 +0000 (04:20 -0700)]
[interpreter] Adds interpreter cctests.
BUG=v8:4280
LOG=N
Review URL: https://codereview.chromium.org/
1269683002
Cr-Commit-Position: refs/heads/master@{#30087}
bmeurer [Mon, 10 Aug 2015 11:18:22 +0000 (04:18 -0700)]
[runtime] Remove obsolete %GetPropertyNames runtime entry.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1281533003
Cr-Commit-Position: refs/heads/master@{#30086}
bmeurer [Mon, 10 Aug 2015 10:32:43 +0000 (03:32 -0700)]
[runtime] Remove unused %ToBool runtime function.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1277693004
Cr-Commit-Position: refs/heads/master@{#30085}
yangguo [Mon, 10 Aug 2015 09:29:03 +0000 (02:29 -0700)]
Disable --global-var-shortcuts.
R=jkummerow@chromium.org
BUG=chromium:517778
LOG=Y
Review URL: https://codereview.chromium.org/
1278353002
Cr-Commit-Position: refs/heads/master@{#30084}
mlippautz [Mon, 10 Aug 2015 08:53:34 +0000 (01:53 -0700)]
[GC] Remove FLAG_incremental_marking_steps
BUG=
Review URL: https://codereview.chromium.org/
1281923002
Cr-Commit-Position: refs/heads/master@{#30083}
bmeurer [Mon, 10 Aug 2015 07:17:16 +0000 (00:17 -0700)]
[turbofan] Drop V8_TURBOFAN_BACKEND and V8_TURBOFAN_TARGET defines.
TurboFan is now a requirement and supported by all backends, so we don't
need those macros (plus all the machinery on top) anymore.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1282763002
Cr-Commit-Position: refs/heads/master@{#30082}
bmeurer [Mon, 10 Aug 2015 06:07:20 +0000 (23:07 -0700)]
[runtime] Remove premature optimization from ToPrimitive.
The !IS_SPEC_OBJECT(x) check implies both IS_STRING(x) and
IS_SIMD_VALUE(x), and generates shorter/better code. So we
can safely remove the redundant checks.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1278873007
Cr-Commit-Position: refs/heads/master@{#30081}
bmeurer [Mon, 10 Aug 2015 04:54:20 +0000 (21:54 -0700)]
[runtime] Simplify TO_INT32/TO_UINT32 abstract operations.
No need to provide TO_INT32/TO_UINT32 functions for every native
context, as they can be implemented in terms of TO_NUMBER more easily
and efficiently.
Also remove the obsolete TO_BOOLEAN_FUN_INDEX from the native contexts.
Review URL: https://codereview.chromium.org/
1275013004
Cr-Commit-Position: refs/heads/master@{#30080}
jkummerow [Sat, 8 Aug 2015 22:56:15 +0000 (15:56 -0700)]
Fasterify JSObject::UnregisterPrototypeUser
When a (prototype) map registers as a user of its own prototype, it now remembers the index in that prototype's registry where it is listed.
This remembered index is used on un-registration to find the right slot to clear without walking the entire registry.
Compaction of the registry must update all entries' remembered indices.
BUG=chromium:517778,chromium:517406
LOG=n
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1276353004
Cr-Commit-Position: refs/heads/master@{#30079}
jkummerow [Sat, 8 Aug 2015 16:45:21 +0000 (09:45 -0700)]
Fasterify ICSlotCache
Use a hash map instead of a list for faster lookups.
BUG=chromium:517406
LOG=n
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1279763006
Cr-Commit-Position: refs/heads/master@{#30078}
v8-autoroll [Sat, 8 Aug 2015 03:26:06 +0000 (20:26 -0700)]
Update V8 DEPS.
Rolling v8/tools/clang to
c956d7970bf6637cb34f17ff64c375b6591d5940
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1276023003
Cr-Commit-Position: refs/heads/master@{#30077}
jkummerow [Fri, 7 Aug 2015 22:44:55 +0000 (15:44 -0700)]
[IC] Make SeededNumberDictionary::UpdateMaxNumberKey prototype aware
Only walk the heap clearing KeyedStoreICs when the dictionary in question belongs to an object that's used as a prototype.
This is a temporary mitigation until we have a way to clear such ICs without having to walk the heap.
BUG=v8:4335
LOG=y
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1275363002
Cr-Commit-Position: refs/heads/master@{#30076}
yangguo [Fri, 7 Aug 2015 22:22:36 +0000 (15:22 -0700)]
Group lexical context variables for faster look up.
Currently, looking up a lexical context variable requires looking up
the variable name and then checking its mode. This can be a bottleneck
in Runtime_DeclareGlobals, even when no lexical context variables are
declared.
R=rossberg@chromium.org
BUG=crbug:517778
LOG=N
Review URL: https://codereview.chromium.org/
1281883002
Cr-Commit-Position: refs/heads/master@{#30075}
rossberg [Fri, 7 Aug 2015 21:55:44 +0000 (14:55 -0700)]
[es6] Fix parsing of expressions in patterns
Fixes the use of eval calls in strict parameter lists in particular.
R=adamk@chromium.org
BUG=v8:811
LOG=N
Review URL: https://codereview.chromium.org/
1276273002
Cr-Commit-Position: refs/heads/master@{#30074}
Djordje.Pesic [Fri, 7 Aug 2015 19:05:47 +0000 (12:05 -0700)]
MIPS: Fix mina_maxa for proper NaN handling.
Also clean up variable naming in min_max and other tests. Fix class_fmt in mips64 assembler test for proper NaN checking
Review URL: https://codereview.chromium.org/
1276813004
Cr-Commit-Position: refs/heads/master@{#30073}
littledan [Fri, 7 Aug 2015 17:56:45 +0000 (10:56 -0700)]
Reland "Test262 roll"
Reland patch originally reviewed at https://codereview.chromium.org/
1268553003/
This new patch marks a test [PASS, FAIL] since it passes on some platforms.
Review URL: https://codereview.chromium.org/
1273883005
Cr-Commit-Position: refs/heads/master@{#30072}
mstarzinger [Fri, 7 Aug 2015 13:46:29 +0000 (06:46 -0700)]
[heap] Remove unused support for heap iterator size function.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
1281903002
Cr-Commit-Position: refs/heads/master@{#30071}
mstarzinger [Fri, 7 Aug 2015 13:38:55 +0000 (06:38 -0700)]
Speed up tests for optimized code sharing.
Note that this tests performed unnecessary many iterations which led to
long runtimes in debug mode and also caused flaky GCs during that would
cause the optimized code map to be flushed and violated assumptions.
R=yangguo@chromium.org
BUG=v8:4363
LOG=N
Review URL: https://codereview.chromium.org/
1280973002
Cr-Commit-Position: refs/heads/master@{#30070}
rossberg [Fri, 7 Aug 2015 13:32:27 +0000 (06:32 -0700)]
Regression test for crbug 517455
Was fixed by https://chromium.googlesource.com/v8/v8/+/
826f8da55fb868a365d047a4a653eb8ff2bfc14e
R=mstarzinger@chromium.org
BUG=517455
LOG=N
Review URL: https://codereview.chromium.org/
1280953002
Cr-Commit-Position: refs/heads/master@{#30069}
mstarzinger [Fri, 7 Aug 2015 13:20:02 +0000 (06:20 -0700)]
[heap] Remove unused IntrusiveMarking class.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
1278113004
Cr-Commit-Position: refs/heads/master@{#30068}
mlippautz [Fri, 7 Aug 2015 12:54:49 +0000 (05:54 -0700)]
[GC] Align behavior of JSProxy with JSObject when embedded in optimized code
With --harmony-proxies enabled, embedded pointers in optimized code can point to
a JSProxy (via a cell). Since JSProxy can morph into JSObject we need to align
the expectations of weak vs strong refs.
With this patch we also treat JSPRoxy as weak ref (like JSObject) and therefore
properly record a dependency on it, so that once the cell pointing to it becomes
unreachable we deoptimize the corresponding code.
BUG=v8:4359
LOG=N
Review URL: https://codereview.chromium.org/
1270393003
Cr-Commit-Position: refs/heads/master@{#30067}
mstarzinger [Fri, 7 Aug 2015 12:11:14 +0000 (05:11 -0700)]
[heap] Make the Marking class all static.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
1269313003
Cr-Commit-Position: refs/heads/master@{#30066}
titzer [Fri, 7 Aug 2015 11:46:07 +0000 (04:46 -0700)]
[turbofan] Remove kInterpreterDispatch CallDescriptor kind in favor of flag.
Rationale: The {kind} of a call descriptor describes what the {target} being
called is--i.e. a JSFunction, code object, or address. That kind materially
dictates the instruction(s) generated for an outgoing call.
The other flags on a call descriptor should describe specific properties
(like whether a roots register is valid or not) so that backend logic doesn't
have to switch over the kind, but is informed directly of what it wants to
know.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1268273003
Cr-Commit-Position: refs/heads/master@{#30065}
rossberg [Fri, 7 Aug 2015 11:38:20 +0000 (04:38 -0700)]
[es6] Use strict arguments objects for destructured parameters
Plus some renaming for consistency.
R=adamk@chromium.org
BUG=v8:811
LOG=N
Review URL: https://codereview.chromium.org/
1278783002
Cr-Commit-Position: refs/heads/master@{#30064}
titzer [Fri, 7 Aug 2015 10:45:34 +0000 (03:45 -0700)]
[turbofan] Remove architecture-specific linkage files and LinkageTraits. Use macro-assembler-defined constants.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1272883003
Cr-Commit-Position: refs/heads/master@{#30063}
ulan [Fri, 7 Aug 2015 10:20:40 +0000 (03:20 -0700)]
Make sure that memory reducer makes progress in incremental marking
even if there are no idle notifications.
BUG=chromium:515873
LOG=NO
Review URL: https://codereview.chromium.org/
1274633003
Cr-Commit-Position: refs/heads/master@{#30062}
mstarzinger [Fri, 7 Aug 2015 09:36:42 +0000 (02:36 -0700)]
[heap] Rename IncrementalMarking::Abort to Stop.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
1279043002
Cr-Commit-Position: refs/heads/master@{#30061}
ulan [Fri, 7 Aug 2015 09:35:34 +0000 (02:35 -0700)]
Use conservative estimate for GC speed instead of bailing out when computing
mutator utilization.
This makes GC heuristics more robust for small applications that trigger
scavenges but do not trigger full GC.
BUG=
Review URL: https://codereview.chromium.org/
1280703002
Cr-Commit-Position: refs/heads/master@{#30060}
ulan [Fri, 7 Aug 2015 09:24:21 +0000 (02:24 -0700)]
Sample allocation rate in memory reducer.
Otherwise, if there is no GC and no idle notification,
memory reducer will use old allocation rate.
BUG=chromium:515873
LOG=NO
Review URL: https://codereview.chromium.org/
1280623002
Cr-Commit-Position: refs/heads/master@{#30059}
machenbach [Fri, 7 Aug 2015 09:05:13 +0000 (02:05 -0700)]
Port cfi configuration from chromium.
BUG=chromium:515782
LOG=n
Review URL: https://codereview.chromium.org/
1267773004
Cr-Commit-Position: refs/heads/master@{#30058}
machenbach [Fri, 7 Aug 2015 08:36:09 +0000 (01:36 -0700)]
[test] Return variant and random seed on failures.
BUG=chromium:511215
LOG=n
Review URL: https://codereview.chromium.org/
1276853002
Cr-Commit-Position: refs/heads/master@{#30057}
machenbach [Fri, 7 Aug 2015 08:09:39 +0000 (01:09 -0700)]
Update binutils version.
BUG=chromium:515782
LOG=n
Review URL: https://codereview.chromium.org/
1273403002
Cr-Commit-Position: refs/heads/master@{#30056}
machenbach [Fri, 7 Aug 2015 06:41:30 +0000 (23:41 -0700)]
Revert of Test262 roll (patchset #9 id:160001 of https://codereview.chromium.org/
1268553003/ )
Reason for revert:
[Sheriff] Lacks one test expectation for
http://build.chromium.org/p/client.v8/builders/V8%20Linux64/builds/4573
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim/builds/4516
64 bits only?
Original issue's description:
> Update to latest test262 from 2015-07-31
>
> Committed: https://crrev.com/
722ad6923887d367f14588f5ccd6697b8684bd28
> Cr-Commit-Position: refs/heads/master@{#30052}
TBR=adamk@chromium.org,littledan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1280903002
Cr-Commit-Position: refs/heads/master@{#30055}
v8-autoroll [Fri, 7 Aug 2015 03:26:22 +0000 (20:26 -0700)]
Update V8 DEPS.
Rolling v8/third_party/icu to
bbb24c53b4f46025e87a5973c39fa722c8757595
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1276153002
Cr-Commit-Position: refs/heads/master@{#30054}
domenic [Thu, 6 Aug 2015 23:52:47 +0000 (16:52 -0700)]
Rename "extras exports" to "extras binding"
R=yangguo@chromium.org, jochen@chromium.org
BUG=507133
LOG=Y
Review URL: https://codereview.chromium.org/
1275683002
Cr-Commit-Position: refs/heads/master@{#30053}
littledan [Thu, 6 Aug 2015 22:46:34 +0000 (15:46 -0700)]
Update to latest test262 from 2015-07-31
Review URL: https://codereview.chromium.org/
1268553003
Cr-Commit-Position: refs/heads/master@{#30052}
bbudge [Thu, 6 Aug 2015 20:24:45 +0000 (13:24 -0700)]
V8: Add SIMD functions for Phase 1.
Float32x4:
abs, neg, sqrt, reciprocalApproximation, reciprocalSqrtApproximation, add, sub, mul, div,
min, max, minNum, maxNum, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual,
equal, notEqual, select, swizzle, shuffle, fromInt32x4, fromInt32x4Bits, fromInt16x8Bits,
fromInt8x16Bits.
Int32x4:
neg, add, sub, mul, min, max, and, or, xor, not, shiftLeftByScalar, shiftRightLogicalByScalar,
shiftRightArithmeticByScalar, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual,
equal, notEqual, select, swizzle, shuffle, fromFloat32x4, fromFloat32x4Bits, fromInt16x8Bits,
fromInt8x16Bits.
Int16x8:
neg, add, sub, mul, min, max, and, or, xor, not, shiftLeftByScalar, shiftRightLogicalByScalar,
shiftRightArithmeticByScalar, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual,
equal, notEqual, select, swizzle, shuffle, fromFloat32x4Bits, fromInt32x4Bits, fromInt8x16Bits.
Int8x16:
neg, add, sub, mul, min, max, and, or, xor, not, shiftLeftByScalar, shiftRightLogicalByScalar,
shiftRightArithmeticByScalar, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual,
equal, notEqual, select, swizzle, shuffle, fromFloat32x4Bits, fromInt32x4Bits, fromInt16x8Bitss.
Bool32x4, Bool16x8, Bool8x16:
and, or, not, anyTrue, allTrue, select, swizzle, shuffle.
I might have forgotten a few.
LOG=N
BUG=v8:4124
Review URL: https://codereview.chromium.org/
1230343003
Cr-Commit-Position: refs/heads/master@{#30051}
mtrofin [Thu, 6 Aug 2015 16:21:23 +0000 (09:21 -0700)]
Stand-alone deferred block splitting. This continues
1256313003.
BUG=
Review URL: https://codereview.chromium.org/
1271703002
Cr-Commit-Position: refs/heads/master@{#30050}
ulan [Thu, 6 Aug 2015 16:05:14 +0000 (09:05 -0700)]
Partially revert https://crrev.com/
7e53749df0a10f475404e86ef0ca8df02bb79e7a
This fixes memory regression caused by not reducing new-space size.
BUG=chromium:517468
LOG=NO
Review URL: https://codereview.chromium.org/
1273083002
Cr-Commit-Position: refs/heads/master@{#30049}
Michael Achenbach [Thu, 6 Aug 2015 15:18:43 +0000 (17:18 +0200)]
Whitespace change to test infra-runner change.
Cr-Commit-Position: refs/heads/master@{#30048}
mstarzinger [Thu, 6 Aug 2015 14:22:01 +0000 (07:22 -0700)]
Fix stale entries in optimized code map.
This fixes a corner-case where extending an optimized code map left
stale entries in the abandoned copy. This can cause havoc not only in
the heap verifier but also in the GC, because stale entries have not
been recorded when being trated weakly.
Note that this also pre-tenures all optimized code maps into old-space
because their lifetime is coupled to the SharedFunctionInfo anyways.
R=hpayer@chromium.org
TEST=cctest/test-heap/Regress514122
BUG=chromium:514122
LOG=N
Review URL: https://codereview.chromium.org/
1277873002
Cr-Commit-Position: refs/heads/master@{#30047}
mstarzinger [Thu, 6 Aug 2015 13:33:37 +0000 (06:33 -0700)]
Helpful checks.cc file is being helpful.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
1276843004
Cr-Commit-Position: refs/heads/master@{#30046}
machenbach [Thu, 6 Aug 2015 12:36:49 +0000 (05:36 -0700)]
[test] Make test filters platform-independent.
Use the same path separator for test cases on the cmd-line
on all platforms as in testcase.GetLabel, which is used to
report failures.
BUG=chromium:511215
LOG=n
NOTRY=true
Review URL: https://codereview.chromium.org/
1281453003
Cr-Commit-Position: refs/heads/master@{#30045}
hpayer [Thu, 6 Aug 2015 12:10:25 +0000 (05:10 -0700)]
When allocation rate is low and we are close to the new space limit, we should perform a scavenge during idle time.
BUG=chromium:517395
LOG=n
Review URL: https://codereview.chromium.org/
1272573006
Cr-Commit-Position: refs/heads/master@{#30044}
mlippautz [Thu, 6 Aug 2015 11:49:47 +0000 (04:49 -0700)]
[GC] Check for incremental marking when a GC is triggered on reaching the external allocation limit
We missed a check whether we can actually do incremental marking when starting
it on reaching the external allocation limit.
BUG=chromium:517195
LOG=N
Review URL: https://codereview.chromium.org/
1274983002
Cr-Commit-Position: refs/heads/master@{#30043}
yangguo [Thu, 6 Aug 2015 10:28:29 +0000 (03:28 -0700)]
Fix Array.prototype.concat for arguments object with getter.
R=adamk@chromium.org
BUG=chromium:516775
LOG=N
Review URL: https://codereview.chromium.org/
1270403002
Cr-Commit-Position: refs/heads/master@{#30042}
ulan [Thu, 6 Aug 2015 10:14:52 +0000 (03:14 -0700)]
Fix idle step marking after 9d7ebc.
Idle notification should force marking to make progress.
BUG=
Review URL: https://codereview.chromium.org/
1275573002
Cr-Commit-Position: refs/heads/master@{#30041}
jkummerow [Thu, 6 Aug 2015 09:57:11 +0000 (02:57 -0700)]
Fix off-by-one in Array.concat's max index check
The maximum valid index is strictly smaller than the maximum valid length.
BUG=chromium:516592
LOG=y
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1278703003
Cr-Commit-Position: refs/heads/master@{#30040}
mtrofin [Thu, 6 Aug 2015 06:15:18 +0000 (23:15 -0700)]
When working on the register allocator, I often need to introspect the various components of the model - e.g. InstructionSequence, Instruction, LiveRange, etc. A pretty printer would help. While we have a suite of operator<< defined for these types, turns out that using them at debug time is close to impossible - gdb has poor (or convoluted) support for instantiating structures (e.g. OFStream, PrintableInstructionSequence, etc), and calling operator<< with pass-by-reference semantics.
I explored gdb macros, but hit an issue quite early with instantiating and initializing an OFStream - "virtual baseclass botch".
Currently, I have a side-file that I include (and then remove before publishing CLs), which defines wrappers to the above operator<< APIs, but this is becoming quite awkward, and I believe the functionality to be quite useful to anyone working in this (regalloc) area, so it's worth having something better than local side-files. The gdb path seems overly-twisted for the problem at hand, and I've noticed elsewhere (e.g. Object) the presence of Print APIs - hence this change.
BUG=
Review URL: https://codereview.chromium.org/
1280483002
Cr-Commit-Position: refs/heads/master@{#30039}
adamk [Wed, 5 Aug 2015 21:32:25 +0000 (14:32 -0700)]
Delete --harmony-computed-property-names flag
It was shipped in V8 4.4.
Review URL: https://codereview.chromium.org/
1273543002
Cr-Commit-Position: refs/heads/master@{#30038}
Adam Klein [Wed, 5 Aug 2015 21:24:48 +0000 (14:24 -0700)]
Try turning object-observe test back on in gc-stress
Also remove obsolete reference to harmony/object-observe in deopt fuzzer
skip section.
BUG=chromium:478788
LOG=n
TBR=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/
1272193004 .
Cr-Commit-Position: refs/heads/master@{#30037}
binji [Wed, 5 Aug 2015 20:58:06 +0000 (13:58 -0700)]
[futex] Avoid accumulation errors in futex wait timeout
The code previously used a relative timeout and accumulated wait times to see
if the timeout was exceeded. Now we convert the timeout into an absolute time,
and always compare the current time against that.
BUG=v8:4357
R=machenbach@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1272733002
Cr-Commit-Position: refs/heads/master@{#30036}
adamk [Wed, 5 Aug 2015 19:08:22 +0000 (12:08 -0700)]
Delete --harmony-unicode flag
It was shipped in V8 4.4.
Review URL: https://codereview.chromium.org/
1271073002
Cr-Commit-Position: refs/heads/master@{#30035}
adamk [Wed, 5 Aug 2015 17:59:39 +0000 (10:59 -0700)]
[es6] Remove Scanner and Parser flags for harmony_modules
These flags weren't doing any real work, since the decision of whether some
source code is a script or module is made outside the parser (currently,
by the V8 API).
The only behavior change in this patch is to always parse 'import' and
'export' as their Token values, which changes the error message from
"Unexpected reserved word" to "Unexpected token import" (which doesn't
seem particularly harmful).
Review URL: https://codereview.chromium.org/
1262913003
Cr-Commit-Position: refs/heads/master@{#30034}
conradw [Wed, 5 Aug 2015 16:03:57 +0000 (09:03 -0700)]
[strong] Refactor out separate strong runtime call for class objects
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1270393002
Cr-Commit-Position: refs/heads/master@{#30033}