Commit Graph

20193 Commits

Author SHA1 Message Date
jochen
97c1f4b15c Turn on DCHECKs and other debugging code if dcheck_always_on is 1
When compiling with the macro DCHECK_ALWAYS_ON defined, DCHECKs and
supporting code gets compiled and enabled.

This increases test coverage for chromium release buildbots

BUG=v8:3731
R=jkummerow@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25701}
2014-12-08 09:26:16 +00:00
machenbach
46762966c4 Correct clean up in android perf runner.
BUG=chromium:374740
LOG=n
TEST=python -m unittest run_perf_test
NOTRY=true
TBR=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25700}
2014-12-08 09:10:48 +00:00
Benedikt Meurer
11b52971d9 Make cpplint happy.
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25699}
2014-12-08 08:53:20 +00:00
Benedikt Meurer
1a05ece305 [turbofan] Improve typing of JSToNumber.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25698}
2014-12-08 08:28:25 +00:00
adamk
75dbd0d352 Add myself to OWNERS
Review URL: https://codereview.chromium.org/780323002

Cr-Commit-Position: refs/heads/master@{#25697}
2014-12-08 05:46:46 +00:00
adamk
1988251044 Revert of Optimize add/set/delete operations for string keys in Maps and Sets (patchset #1 id:1 of https://codereview.chromium.org/777663003/)
Reason for revert:
Deopt fuzzer reports that something's still broken, reverting until
I can create a minimal repro.

Original issue's description:
> Optimize add/set/delete operations for string keys in Maps and Sets
>
> This was previously landed in commit 66e2f60, but failed the
> collections mjsunit test with --deopt-every-n=1 due to a typo
> in the shrinking code. This patch corrects and simplifies the
> shrinking logic, and the tests now pass.
>
> R=dslomov@chromium.org
>
> Committed: 8599f5f047

TBR=dslomov@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25696}
2014-12-05 22:25:11 +00:00
Adam Klein
8599f5f047 Optimize add/set/delete operations for string keys in Maps and Sets
This was previously landed in commit 66e2f60, but failed the
collections mjsunit test with --deopt-every-n=1 due to a typo
in the shrinking code. This patch corrects and simplifies the
shrinking logic, and the tests now pass.

R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25695}
2014-12-05 21:04:00 +00:00
arv
c8c7395644 Optimize GetPrototype
This introduces Hydrogen for %_GetPrototype. The code falls back on
runtime if the object needs access checks or if its prototype is a
hidden prototype.

BUG=None
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25694}
2014-12-05 20:36:50 +00:00
paul.lind
761891d201 MIPS64: Fix port of Refactor Map::ConstructionCount.
Port 35ff259b63.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25693}
2014-12-05 19:30:59 +00:00
balazs.kilvady
1a033e5df4 MIPS: Refactor Map::ConstructionCount.
Port 35ff259b63

Original commit message:
This combines Map::DoneInobjectSlackTracking and Map::ConstructionCount into one more generic 4-bit counter.

Counter values from 15 down to 8 are used for in-object slack tracking, values from 7 down to 0 are free to be used for a new counter when in-object slack tracking is inactive

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25692}
2014-12-05 17:49:42 +00:00
baixo
cd0a53bca2 GN: Enable embedder to decide whether or not the external V8 snapshot is enabled.
BUG=421063

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

Cr-Commit-Position: refs/heads/master@{#25691}
2014-12-05 17:22:53 +00:00
dslomov
293f898a6f Make sure that individual shipping features can be disabled.
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25690}
2014-12-05 15:35:37 +00:00
ulan
35ff259b63 Refactor Map::ConstructionCount.
This combines Map::DoneInobjectSlackTracking and Map::ConstructionCount into one more generic 4-bit counter.

Counter values from 15 down to 8 are used for in-object slack tracking, values from 7 down to 0 are free to be used for a new counter when in-object slack tracking is inactive.

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

Cr-Commit-Position: refs/heads/master@{#25689}
2014-12-05 15:28:22 +00:00
dcarney
5ce364d817 new api for adding indexed interceptors
R=svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25688}
2014-12-05 15:21:27 +00:00
ulan
a9f692eca8 Fix %GetWeakSetValues to work correctly with GC.
This fixes mjsunit/es6/mirror-collections failure in arm64 gc-stress bot.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25687}
2014-12-05 13:27:17 +00:00
verwaest
7fb5f74d20 Allow eval in detached contexts
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25686}
2014-12-05 13:25:10 +00:00
dcarney
4c7effe56e [turbofan] disable neutering on embedded arraybuffers
R=titzer@chromium.org,

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25685}
2014-12-05 13:08:03 +00:00
dslomov
bd04e6cdad Fix the order of context binding/simulate insertion for BlockContexts.
R=jarin@chromium.org
BUG=v8:3741
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25684}
2014-12-05 13:06:50 +00:00
danno
1150cf7f9a [turbofan] Fix Corrections tankage on x64.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25683}
2014-12-05 13:05:46 +00:00
mstarzinger
9ed88f1789 Switch two ZoneLists to ZoneVector in register allocator.
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25682}
2014-12-05 13:04:43 +00:00
yangguo
ab234760d7 Reland "Encode reservation meta data in the snapshot blob."
CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_dbg,v8_linux_nosnap_rel

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

Cr-Commit-Position: refs/heads/master@{#25681}
2014-12-05 13:03:30 +00:00
mstarzinger
aae8fe7550 Cleanup deoptimizer relocation slot preparation.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25680}
2014-12-05 13:02:13 +00:00
jochen
ab16c8a3a5 When generating code for ia32, make sure that there is enough reloc space
Compare with LCodeGen::FinishCode

BUG=none
R=jarin@chromium.org,mstarzinger@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25679}
2014-12-05 11:15:32 +00:00
mstarzinger
bedb774a62 Finally drop outdated misleading runtime.js comment.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25678}
2014-12-05 11:01:43 +00:00
danno
85d2db8781 [turbofan] Use "leal" in even more situations
Achieve more than parity with modes currently handled on ia32 in preparation for
porting the entire mechanism to ia32, including supporting mul of constants 3,
5 and 9 with "leal" instructions.

TEST=unittests

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

Cr-Commit-Position: refs/heads/master@{#25677}
2014-12-05 10:54:40 +00:00
Benedikt Meurer
5866c5c2f0 [x86] Slow case of TruncateDoubleToI shouldn't be inline.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25676}
2014-12-05 09:29:36 +00:00
jochen
05a6d87ee4 Teach the test runner whether it's running on a trybot or not
BUG=none
R=machenbach@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25675}
2014-12-05 09:09:21 +00:00
machenbach
21835209a7 Use merged JSTest config for performance tests.
The new config is now used for perf measurements. The old
ones are deleted to avoid redundancy.

This also ports https://codereview.chromium.org/754523004 to the new config file.

BUG=chromium:374740
LOG=n
TBR=ulan@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25674}
2014-12-05 08:43:19 +00:00
Benedikt Meurer
b3ace35209 [turbofan] Redundant load elimination.
This is an initial version of redundant load elimination, currently
limited to LoadField operators, and implemented by walking the effect
chain.

TEST=unittests
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25673}
2014-12-05 07:59:18 +00:00
v8-autoroll
c174d14578 Update V8 DEPS.
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25672}
2014-12-05 04:27:56 +00:00
paul.lind
13c42aa8d9 MIPS: Fixed environment handling for LFlooringDivI.
Port c16b8f6cbb

TEST=mjsunit/regress/regress-437765
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25671}
2014-12-04 23:50:41 +00:00
adamk
13fd4a529a Revert of Optimize add/set/delete operations for string keys in Maps and Sets (patchset #5 id:70001 of https://codereview.chromium.org/773993002/)
Reason for revert:
Caused test failures in mjsunit/es6/collections with --deopt-every-n-times=1

Original issue's description:
> Optimize add/set/delete operations for string keys in Maps and Sets

TBR=dslomov@chromium.org,arv@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25670}
2014-12-04 21:37:24 +00:00
arv
f515e3635f Add js-perf-test for ES6 class default constructor
BUG=v8:3330
LOG=N
TBR=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25669}
2014-12-04 20:12:14 +00:00
adamk
66e2f60bf9 Optimize add/set/delete operations for string keys in Maps and Sets
Review URL: https://codereview.chromium.org/773993002

Cr-Commit-Position: refs/heads/master@{#25668}
2014-12-04 20:07:54 +00:00
arv
44149ae751 Make template scan related function take a template<bool> parameter
This is for performance. Having to do the test in every Advance was too
expensive.

BUG=438991, v8:3230
LOG=N
R=dslomov@chromium.org, marja

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

Cr-Commit-Position: refs/heads/master@{#25667}
2014-12-04 19:24:34 +00:00
vogelheim
b27431d52f Cleanup: Remove NativesCollection<.>::*Raw* methods.
These methods for used for compressed libraries, where GetSource* functions
contained the compressed sources and [GS]etRawSource* the uncompressed
sources. This is dead code since the API no longer supports compression.

(If you need/want compressed sources, use the external startup data and
 compress/uncompress on the Embedder's side.)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25666}
2014-12-04 18:51:22 +00:00
adamk
6230641b83 Optimize testing for an index's existence in packed Arrays
This patch introduces a new inline runtime function,
%_HasFastPackedElements(), and uses it both in the implementation
of the 'in' operator and in the array builtins to speed
up testing for the existence of an index in an array.

In testing with the microbenchmark on the attached bug,
for example, the runtime goes from 326ms to 66ms.

A reviewer might ask whether the HAS_INDEX macro is worthwhile,
and I tried the same example without it, which pushed the
microbenchmark up to 157ms. So it seems it's worth it to
avoid the function call to IN() if we know we're dealing
with arrays and numbers.

BUG=v8:3701
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25665}
2014-12-04 18:46:46 +00:00
Dusan Milosavljevic
f62ab8d061 MIPS; Improve checked load/store operators for constant offset and length.
TEST=
BUG=
R=balazs.kilvady@imgtec.com, paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25664}
2014-12-04 17:28:08 +00:00
jochen
0197a15f3c Explicitly track whether incremental marking was activated
In the gc-tracer, we check whether we're marking to figure out which
part of the mark compact we're in. If we aborted incremental marking for
whatever reason, the check fails and we might later run into trouble

BUG=none
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25663}
2014-12-04 16:44:33 +00:00
balazs.kilvady
a25003cfa6 MIPS: Change CmpWeakValue to a more MIPS like GetWeakValue.
This approach saves one instruction by eliminating the use of Subu as a
pseudo-comparison.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25662}
2014-12-04 16:29:16 +00:00
arv
edf3dab466 ES6 template literals: Fix issue with template after rbrace
If we hade }` the right brace was always treated as part of the
template literal. We should only treat the right brace as part of
the literal when we continue to parse the template literal after a
placeholder.

BUG=v8:3734
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25661}
2014-12-04 14:50:17 +00:00
jochen
f5a027dc70 Check whether the marking deque overflowed in ProcessEphemeralMarking
Otherwise, we might exit to early when we call ProcessEphemeralMarking
with an empty, overflown deque

BUG=none
R=hpayer@chromium.org,erik.corry@gmail.com
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25660}
2014-12-04 14:09:35 +00:00
arv
eb5049b14d Stage ES6 template literals
BUG=v8:3230
LOG=Y
R=dslomov@chromium.org, rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25659}
2014-12-04 12:25:01 +00:00
Benedikt Meurer
73b4af7aa6 [turbofan] Narrow upper bounds during typed lowering.
This is a temporary solution, which optionally narrows upper bounds of
nodes when changing the operator of a node.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25658}
2014-12-04 11:19:40 +00:00
ulan
b98a37113d Do not embed function in DirectLoadGlobalFunctionPrototype.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25657}
2014-12-04 10:52:49 +00:00
Benedikt Meurer
2bf048f46c [turbofan] Reduce context accesses during typed lowering.
TEST=unittests
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25656}
2014-12-04 10:50:58 +00:00
machenbach
1364ea7c77 Make JSTests ready for Android measurements.
This adds a common perf configuration for JSTests including
Classes, Collections, Iterators and Strings. This allows
the android test runner to handle subdirectories correctly
and to share the base.js resource in the parent directory.

The new json config has added resources configs for the
Android runner.

The perf runner's relative paths on the device are fixed as
well. Resources are only pushed on the configuration node
where they are specified. They are pushed to a dir on the
device that follows the same directory structure as on the
host. The binary is executed in the benchmark folder on the
device like on the host to allow relative path file
loading.

BUG=chromium:374740
LOG=n
TEST=python -m unittest run_perf_test
TBR=ulan@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25655}
2014-12-04 10:37:42 +00:00
machenbach
ccf68a7b92 Revert of Encode reservation meta data in the snapshot blob. (patchset #3 id:40001 of https://codereview.chromium.org/781443002/)
Reason for revert:
[sheriff] Breaks http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064/builds/1540

Original issue's description:
> Encode reservation meta data in the snapshot blob.
>
> This also makes reserving multiple chunks per object space possible.
>
> R=vogelheim@chromium.org

TBR=vogelheim@chromium.org,baixo@chromium.org,yangguo@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25654}
2014-12-04 10:31:33 +00:00
weiliang.lin
a8fbf3ac24 [x64] check sahf correctly
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25653}
2014-12-04 10:13:20 +00:00
yangguo
aa3ceb8b71 Encode reservation meta data in the snapshot blob.
This also makes reserving multiple chunks per object space possible.

R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25652}
2014-12-04 09:50:39 +00:00