Commit Graph

20186 Commits

Author SHA1 Message Date
machenbach
e86a933a40 Optimize pushing files in android perf test runner.
BUG=chromium:374740
LOG=n
TEST=python -m unittest run_perf_test
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25644}
2014-12-03 15:34:56 +00:00
Ben L. Titzer
918ef9d712 Revert "[turbofan] Reuse forward fixpoint algorithm in Typer by making it a Reducer."
This reverts commit a48ad24a7c.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25643}
2014-12-03 15:03:27 +00:00
wingo
21b23e6966 Move more don't-crankshaft computation to numbering pass
The "do I inline?" decision needs many of the same inputs as the "should
I even try to crankshaft?" decision.  This change consolidates these
checks in the numbering pass.  It also removes the is_generator() check,
as that's already handled when visiting the initial Yield expression.

R=svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25642}
2014-12-03 14:52:42 +00:00
balazs.kilvady
68c800ef9d MIPS64: [turbofan] Add checked load/store operators.
Port c516d4f094

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25641}
2014-12-03 14:18:34 +00:00
arv
d67e573dbe Simplify template literal raw string creation
BUG=v8:3710
LOG=Y
R=dslomov@chromium.org, marja@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25640}
2014-12-03 14:17:23 +00:00
ulan
3fc9c9b665 Use weak cells to embed maps in store handler.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25639}
2014-12-03 13:36:59 +00:00
mstarzinger
740d0a987a Prevent redundant node revisit in ControlEquivalence.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25638}
2014-12-03 13:24:55 +00:00
hpayer
74321d5558 Restart idle round on context disposal.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25637}
2014-12-03 13:14:00 +00:00
Dusan Milosavljevic
8138bb5b85 MIPS: Improve pushing arguments on stack.
TEST=
BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25636}
2014-12-03 13:10:09 +00:00
Dusan Milosavljevic
57957b480c MIPS: Fix ambiguous double constant loading after adding checked load/store operators.
The V8_INFINITY macro expands to constant expression of type float.

TEST=mjsunit/constant-folding-2
BUG=
R=balazs.kilvady@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25635}
2014-12-03 12:51:14 +00:00
ulan
062a032f50 CheckPrototypes uses weak cells to embed maps.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25634}
2014-12-03 12:34:32 +00:00
titzer
a48ad24a7c [turbofan] Reuse forward fixpoint algorithm in Typer by making it a Reducer.
R=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25633}
2014-12-03 11:52:03 +00:00
bmeurer
e564b3fe06 [turbofan] Initial work on cleaning up the Node class.
- Remove use_count_, only used for debug builds and tests.
- Use BitField instead of the unreliable C++ bit fields.
- Improve memory layout.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25632}
2014-12-03 10:33:52 +00:00
hpayer
708610e965 Print finalize incremental marking event in idle notification.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25631}
2014-12-03 10:03:30 +00:00
hpayer
7ec1c3616e Slow down incremental marking on main thread when idle notification is active.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25630}
2014-12-03 09:37:07 +00:00
yangguo
07584119ca Serializer: cache recent back references for shorter encoding.
And some refactorings.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25629}
2014-12-03 09:12:37 +00:00
marja
02cb54e3cc Make test-parsing faster: don't run parsing tests with all experimental flag combinations.
Instead, make it possible for indifidual tests to pass "always true flags" which
are not part of the varying flag set.

The downside is that if an experimental flag changes parsing of some of the
unrelated code snippets, it's noticed later (only after the flag is turned on by
default). But this is a reasonable trade off for faster tests.

Additional fix: Some tests (ErrorsFutureStrictReservedWords) were using
always_flags incorrectly (running two different tests with different
always_flags basically iterates over every flag combination anyway - most of
them twice).

BUG=v8:3707
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25628}
2014-12-03 08:23:48 +00:00
Benedikt Meurer
2983d84e5c [turbofan] Combine additional Word32And with Int32Add and negative power of two.
- (y << L + x) & (-1 << L) => (x & (-1 << L)) + y << L
- (x + y << L) & (-1 << L) => (x & (-1 << L)) + y << L

TEST=unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25627}
2014-12-03 07:35:03 +00:00
paul.lind
a07045af54 MIPS: [turbofan] Add checked load/store operators.
Port c516d4f094

Partial port to un-break the build. There are a few failing
tests, and the code is suboptimal for smaller offsets.

Fixes and mips64 port will come in another CL.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25626}
2014-12-03 00:28:24 +00:00
adamk
34d9be2e58 Optimize non-mutation Map and Set operations for String keys
Review URL: https://codereview.chromium.org/757143002

Cr-Commit-Position: refs/heads/master@{#25625}
2014-12-02 23:06:55 +00:00
vogelheim
881a921bb2 Fix NativesCollection<.>::GetScriptName in natives-external.cc
As there's no associated bug, here's the issue:
- Some ES6 functionality in Chrome is presently broken; this fixes it.
- The natives (built-in libraries) can be accessed by their 'name'.
  This is used to active ES6 flags.
- Strangely enough, there's an id and a name, where the name is derived
  from the id as "native %s.js", with %s for the id.
- NativesCollection<.>::GetScriptName uses the name.
- NativesCollection<.>::GetIndex uses the id.
- Example:
  NativesCollection<EXPERIMENTAL>::GetIndex("harmony-string") -> 3
  NativesCollection<EXPERIMENTAL>::GetScriptName(3) -> "native harmony-string.js"
- Nobody knows why; it's quite mysterious.
- When introducing the "external startup data", I didn't fully understand this
  and used the id in both places.
- When the "external startup data" was turned on in Chrome, ES6 features broke
  in Chrome since the libraries could no longer be found.
- This CL fixes this and makes the external startup data behave just like the
  built-in version.

R=dslomov
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25624}
2014-12-02 18:53:34 +00:00
baptiste.afsa
80012d0b96 [turbofan] Enable DivIsSafe flag for arm64.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25623}
2014-12-02 18:45:38 +00:00
mstarzinger
5db82a57b6 Switch CFGBuilder to use NodeMarker.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25622}
2014-12-02 16:51:55 +00:00
mstarzinger
f9e4527f32 Restrict floating control to minimal control-connected component.
R=jarin@chromium.org
TEST=cctest/test-scheduler/NestedFloatingDiamondWithChain

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

Cr-Commit-Position: refs/heads/master@{#25621}
2014-12-02 15:56:30 +00:00
mstarzinger
0672b64d1c Make generic algorithm a little less generic.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25620}
2014-12-02 15:38:00 +00:00
weiliang.lin
4f3d27e64f [ia32] Introduce FMA3 instructions on scalar data elements.
port 83a635e0d7

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25619}
2014-12-02 15:30:09 +00:00
jochen
4fcc2dca7e Trace how long it takes to compute the weak closure during mark-compact
BUG=none
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25618}
2014-12-02 15:09:27 +00:00
dslomov
dba8e83b41 Stage ES6 classes and object literal extensions.
R=arv@chromium.org,rossberg@chromium.org
BUG=v8:3330
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25617}
2014-12-02 14:54:40 +00:00
danno
f6e5bc1642 Clean up node iteration
- Create a first-class Edge type.
- Separate node and edge iterators
- Make iterators only responsible for iteration
- Make it possible to modify the use edge iterator while iterating.
- Add the ability to update inputs to Edges directly.

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

Cr-Commit-Position: refs/heads/master@{#25616}
2014-12-02 14:38:58 +00:00
ulan
2ac522ab15 Reland parts of 'Use weak cells in map checks in polymorphic ICs'
This relands macroassembler instructions and weak cell caching and
does not include parts that caused "Linux ASan LSan" test failures.

BUG=v8:3663
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25615}
2014-12-02 14:25:26 +00:00
machenbach
6a3460129c Add Android platform to performance runner.
BUG=chromium:374740
LOG=n
TEST=python -m unittest run_perf_test
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25614}
2014-12-02 14:24:00 +00:00
svenpanne
c16b8f6cbb Fixed environment handling for LFlooringDivI on ARM.
Beautiful code... :-}

BUG=chromium:437765
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25613}
2014-12-02 13:47:19 +00:00
Marja Hölttä
d3c217674f Make the ParserSync test faster (and re-enable it).
Most of the run time came from testing with all possible flag combinations. None
of the flags passed affect the test, and there are specialized tests for testing
the features behind the flags; no need to slow down the generic test.

With these changes, run time for debug build goes from 186 s to 0.5 s.

In addition, fixed some missing commas between the test cases.

R=svenpanne@chromium.org
BUG=v8:3707
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25612}
2014-12-02 13:23:39 +00:00
Benedikt Meurer
5a37253b1a [turbofan] Use the temporary zone for the VN cache.
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25611}
2014-12-02 12:45:19 +00:00
Benedikt Meurer
0a020550c6 [turbofan] Cache the Branch operator(s).
TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25610}
2014-12-02 12:41:44 +00:00
Benedikt Meurer
a94a612220 [turbofan] Cache the JSStoreProperty operator(s).
TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25609}
2014-12-02 11:40:32 +00:00
dslomov
71d166ee70 Restore correct logic in GC test.
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25608}
2014-12-02 11:34:38 +00:00
hpayer
ee798e203f Perform smaller marking steps incrementally in idle notification.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25607}
2014-12-02 11:25:07 +00:00
jochen
49859dc3bb After moving unreachable weak global handles only process harmony collections
Groups and implicit references are no longer relevant at this point.

Also add tests that fail if the first or second round of ephemeral
marking is omitted

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

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

Cr-Commit-Position: refs/heads/master@{#25606}
2014-12-02 11:24:00 +00:00
Benedikt Meurer
d33cabea57 [turbofan] Add missing tests for SimplifiedOperatorBuilder.
TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25605}
2014-12-02 11:10:55 +00:00
titzer
10750f0e80 [turbofan] Enable stage 1.
R=danno@chromium.org,bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25604}
2014-12-02 11:07:26 +00:00
marja
0a0e6c8c81 ES6 unicode extensions, part 1.
Allows \u{xxxxx} in variable names and string literals (not yet in regexps).

Everything's behind the --harmony-unicode flag.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25603}
2014-12-02 10:58:19 +00:00
titzer
027cbf8d7f [turbofan] Initialize less frequently used types in typer.cc lazily.
R=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25602}
2014-12-02 10:43:13 +00:00
marja
007028cded Parser: Removing debug code.
The mystery crash never reappeared once the debugging code was in place.

R=jochen@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25601}
2014-12-02 10:31:54 +00:00
titzer
77c6ee0c04 [turbofan] Make context specialization into a reducer.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25600}
2014-12-02 10:02:46 +00:00
Hannes Payer
81ec9916ba Fix idle time trace printing.
BUG=
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25599}
2014-12-02 09:27:55 +00:00
yurys
f434123a16 Add GetIdentityHash to v8::Name object API
v8::Object already has GetIdentityHash on it. This change adds its counterpart to v8::Name.

BUG=chromium:437416
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25598}
2014-12-02 09:13:30 +00:00
machenbach
d9c83f6bd0 Revert of Use weak cells in map checks in polymorphic ICs. (patchset id:140001 of https://codereview.chromium.org/753993003/)
Reason for revert:
[Sheriff] Speculative revert for breaking chromium asan (roll blocker):
http://build.chromium.org/p/client.v8/builders/Linux%20ASan%20LSan%20Tests%20%281%29/builds/1683

Original issue's description:
> Use weak cells in map checks in polymorphic ICs.
>
> BUG=v8:3663
> LOG=N

TBR=mvstanton@chromium.org,akos.palfi@imgtec.com,weiliang.lin@intel.com,ulan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3663

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

Cr-Commit-Position: refs/heads/master@{#25597}
2014-12-02 08:17:05 +00:00
machenbach
58553437fa Revert of MIPS: Use weak cells in map checks in polymorphic ICs. (patchset id:1 of https://codereview.chromium.org/767623003/)
Reason for revert:
Need to revert the ported CL:
https://codereview.chromium.org/771033003/

Original issue's description:
> MIPS: Use weak cells in map checks in polymorphic ICs.
>
> Port 45a36948e1
>
> Fix typo in the mips ports.
>
> BUG=

TBR=ulan@chromium.org,danno@chromium.org,akos.palfi@imgtec.com,balazs.kilvady@imgtec.com,gergely.kis@imgtec.com,dusan.milosavljevic@imgtec.com,paul.lind@imgtec.com
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25596}
2014-12-02 08:15:34 +00:00
weiliang.lin
2ad1c224b8 [ia32] Introduce vex prefix version of float64 arithmetic binop
port 50c4d8826b

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25595}
2014-12-02 08:09:53 +00:00