Commit Graph

7308 Commits

Author SHA1 Message Date
bmeurer
a9d0d23405 Revert of [turbofan] Make Factory::NewNumber() always return the minus_zero_value. (patchset #1 id:1 of https://codereview.chromium.org/838263006/)
Reason for revert:
Breaks the tree

Original issue's description:
> [turbofan] Make Factory::NewNumber() always return the minus_zero_value.
>
> TEST=unittests
> R=mstarzinger@chromium.org, dcarney@chromium.org
>
> Committed: https://crrev.com/55b3e268b2895e2c09230d39669a75b6ab4e7e4d
> Cr-Commit-Position: refs/heads/master@{#26080}

TBR=dcarney@chromium.org,mstarzinger@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26081}
2015-01-15 15:29:42 +00:00
Benedikt Meurer
55b3e268b2 [turbofan] Make Factory::NewNumber() always return the minus_zero_value.
TEST=unittests
R=mstarzinger@chromium.org, dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26080}
2015-01-15 15:10:05 +00:00
bmeurer
dd6ce12645 [turbofan] Turn IrOpcode::IsXXX() into range checks.
TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26079}
2015-01-15 15:07:39 +00:00
bmeurer
4914716387 Revert of [turbofan] Use PlainPrimitiveToNumber whenever possible. (patchset #1 id:1 of https://codereview.chromium.org/852763002/)
Reason for revert:
Tanks performance of SQLite and towers.c.

Original issue's description:
> [turbofan] Use PlainPrimitiveToNumber whenever possible.
>
> TEST=cctest,unittests
> R=jarin@chromium.org
>
> Committed: https://crrev.com/1a5db24e6bf831e61e3f4aa0c252f77e48c3689c
> Cr-Commit-Position: refs/heads/master@{#26071}

TBR=jarin@chromium.org,dcarney@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26078}
2015-01-15 13:26:55 +00:00
mvstanton
23b181552e Vector-based LoadICs need to handle Smi receivers.
The MISS handler was being called when the receiver was a Smi, instead,
we should recognize the case and use the heap number map.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26076}
2015-01-15 12:52:47 +00:00
mstarzinger
e72c5d2c23 Remove redundant test expectation from mjsunit.
R=jkummerow@chromium.org
TEST=mjsunit/nans

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

Cr-Commit-Position: refs/heads/master@{#26075}
2015-01-15 12:47:59 +00:00
Yang Guo
3706a50457 Fix number-string cache test case.
TBR=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26073}
2015-01-15 11:49:10 +00:00
yangguo
22e6958d63 Fix remaining issues in the custom snapshot.
Math functions:
Some Math functions require typed arrays for their implementation. The embedded
script may call those Math functions. The serializer needs to deal with this.
Added assertion to make sure no other typed array is created when snapshotting.

Number-string cache:
We assume that the initial snapshot does not expand the number-string cache.
This is no longer true for custom heap snapshots.

Bound functions:
Bound functions store the bound arguments in a COW fixed array, including the
bindee function. COW arrays are serialized into the startup snapshot and
referenced in the partial snapshot via partial snapshot cache. However, the
bindee function is context-dependent and must not be part of the startup
snapshot. There is no need for bound functions to use a COW array though.

R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26072}
2015-01-15 11:22:17 +00:00
bmeurer
1a5db24e6b [turbofan] Use PlainPrimitiveToNumber whenever possible.
TEST=cctest,unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26071}
2015-01-15 09:49:23 +00:00
dcarney
e6552d4917 Reland "[turbofan] simplify gap ordering"
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26069}
2015-01-15 09:06:05 +00:00
dcarney
a7e3c71b23 add register allocator regression test
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26068}
2015-01-15 08:56:10 +00:00
baptiste.afsa
51f3c66b64 [turbofan] Allow 0.0 as immediate for floating-point comparison on arm/arm64.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26066}
2015-01-15 06:31:07 +00:00
Ben L. Titzer
3244a66543 [turbofan] Fix corner case in loop analysis.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26063}
2015-01-14 17:06:37 +00:00
yangguo
fe82e03bb6 Correctly reference global proxy in the partial snapshot.
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26061}
2015-01-14 16:42:30 +00:00
mstarzinger
2ebe24c9cb First simple implementation of for-of in TurboFan.
R=rossberg@chromium.org
TEST=cctest/test-run-jsbranches/ForOfContinueStatement

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

Cr-Commit-Position: refs/heads/master@{#26060}
2015-01-14 15:24:29 +00:00
jochen
c65799e7c5 Remove support for signatures with arguments
Support for it is slow and difficult to implement, and it's not used in
Blink. An embedder that uses this feature will have to check the
argument types itself.

BUG=none
R=dcarney@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26058}
2015-01-14 14:44:10 +00:00
bmeurer
e1d878d16f Add proper support for proxies to HType.
TEST=mjsunit/regress/regress-crbug-448730
BUG=chromium:448730
LOG=y
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26056}
2015-01-14 13:57:09 +00:00
jarin
ac04d777d6 [turbofan] Allow deoptimization for JSToNumber operator.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26053}
2015-01-14 13:09:32 +00:00
bmeurer
70b32e4b8a [turbofan] Fix truncation/representation sloppiness wrt. bool/bit.
TEST=cctest,mjsunit,unittests
BUG=v8:3812
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26051}
2015-01-14 12:06:56 +00:00
bmeurer
214387fce1 Revert of [turbofan] Improve typed lowering of JSBitwiseAnd. (patchset #1 id:1 of https://codereview.chromium.org/811653004/)
Reason for revert:
Breaks SQLite

Original issue's description:
> [turbofan] Improve typed lowering of JSBitwiseAnd.
>
> TEST=unittests
> R=jarin@chromium.org
>
> Committed: https://crrev.com/284e1108182995abe85f580bc813d26491642b8c
> Cr-Commit-Position: refs/heads/master@{#26046}

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

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

Cr-Commit-Position: refs/heads/master@{#26048}
2015-01-14 09:07:07 +00:00
Benedikt Meurer
284e110818 [turbofan] Improve typed lowering of JSBitwiseAnd.
TEST=unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26046}
2015-01-14 07:40:32 +00:00
balazs.kilvady
3da5a729e8 MIPS: [turbofan] Improve code generation for unordered comparisons.
Port c24220c0c1

TEST=cctest,unittests
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26045}
2015-01-13 20:28:13 +00:00
bmeurer
1fa21bfd39 [turbofan] Reduce Word32And masking with shifted inputs.
TEST=unittests
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26040}
2015-01-13 13:02:40 +00:00
bmeurer
9f292086f9 [turbofan] Add PlainPrimitiveToNumber simplified operator.
TEST=unittests

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

Cr-Commit-Position: refs/heads/master@{#26038}
2015-01-13 11:02:57 +00:00
yangguo
bcab9eacf3 Update references to global object after deserializing context.
R=jochen@chromium.org
TEST=test-serialize/CustomContext{Des,S}erialization

Also test by
- make ia32.debug embedscript=<full path to mjsunit.js>
- d8 -e "assertDoesNotThrow('print(1)')"

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

Cr-Commit-Position: refs/heads/master@{#26035}
2015-01-13 08:48:08 +00:00
bmeurer
c24220c0c1 [turbofan] Improve code generation for unordered comparisons.
TEST=cctest,unittests

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

Cr-Commit-Position: refs/heads/master@{#26034}
2015-01-13 08:42:02 +00:00
jarin
527e19afd5 [turbofan] Add missing deopt.
BUG=chromium:447567
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26033}
2015-01-13 08:40:54 +00:00
caitpotter88
4b6316c5ff Check for octals in template spans only, not expressions
BUG=v8:3806
LOG=N
R=arv@chromium.org, dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26028}
2015-01-12 15:07:47 +00:00
bmeurer
0e8a6d4ec8 [turbofan] Canonicalize x - K to x + -K.
TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26027}
2015-01-12 15:02:06 +00:00
mstarzinger
df30088de3 Enable test after arguments count limitation was lifted.
R=bmeurer@chromium.org
TEST=mozilla/js1_5/Regress/regress-396684
BUG=v8:3786

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

Cr-Commit-Position: refs/heads/master@{#26026}
2015-01-12 14:32:23 +00:00
erikcorry
7db1759b65 Unify phantom and internal fields weak handle callbacks
R=dcarney@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26022}
2015-01-12 12:12:10 +00:00
dslomov
a4124b3bfc Map -0 to integer 0 for typed array constructors.
R=bmeurer@chromium.org
BUG=chromium:447756
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26021}
2015-01-12 11:42:57 +00:00
titzer
159b14172f [turbofan] Implement OSR for outer loops.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26020}
2015-01-12 11:39:58 +00:00
marja
2305cfb4e2 ES6 unicode escapes, part 2: Regexps.
Allows \u{xxxxx} in regexps. Behind the --harmony-unicode flag.

Part 1 is here: https://codereview.chromium.org/716423002

BUG=v8:3648
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26018}
2015-01-12 09:50:34 +00:00
bmeurer
b6c7e11c10 [turbofan] Fix typo in IrOpcode::Mnemonic.
TEST=unittests
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26014}
2015-01-09 14:20:03 +00:00
jochen
21ce246423 Correctly setup the freelist of the coderange on Win64
Since we have a special guard page at the beginning of the code range on
win64, we need to make sure to adjust the size of the free list
accordingly when creating it.

BUG=chromium:447555
R=hpayer@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26012}
2015-01-09 13:07:42 +00:00
titzer
7e98658e31 [turbofan] Fix control reducer for degenerate cases of self-loop branches.
R=jarin@chromium.org
BUG=chromium:447526

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

Cr-Commit-Position: refs/heads/master@{#26009}
2015-01-09 12:28:14 +00:00
vogelheim
c72c28dd00 Disable webkit/array-iterate-backwards for debug builds.
(Debug builds have --enable-slow-asserts, and with slow asserts each
assignment to the array in the prepare function will trigger a check
over the entire array. This turns it into n^2 work, for reasonably
large n.)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26006}
2015-01-09 10:27:15 +00:00
dslomov
a417b41880 Unship ES6 classes.
R=rossberg@chromium.org
BUG=v8:3330

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

Cr-Commit-Position: refs/heads/master@{#26000}
2015-01-08 15:11:01 +00:00
bmeurer
5157472539 [turbofan] Cleanup duplicated/unused code in InstructionSelector.
- Use C++11 range based for loops.
- Remove duplicated virtual register set in unittests.
- Don't expose implementation details of InstructionSelector.

TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25997}
2015-01-08 14:13:33 +00:00
Yang Guo
2050994d80 Correctly parse line ends for debugging.
Instead of using only \n as line terminator, we now use the definition
in http://www.ecma-international.org/ecma-262/5.1/#sec-7.3

R=marja@chromium.org
BUG=v8:2825
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25989}
2015-01-08 10:46:13 +00:00
bmeurer
fec1bba852 [turbofan] Correctify representation changes to bit.
TEST=cctest/test-representation-change,unittests,mjsunit/compiler/regress-bit-number-constant
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25987}
2015-01-08 09:48:41 +00:00
dcarney
a5aa01beec remove declarative accessors
R=jochen@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25981}
2015-01-07 16:37:43 +00:00
sergeyv
cedc11ba59 Fix sourceURL & sourceMapURL handling in case of background parsing
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25980}
2015-01-07 15:56:18 +00:00
bmeurer
d1c1a3c48f [turbofan] Fix bit representation of NumberConstant.
TEST=mjsunit/compiler/regress-bit-number-constant

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

Cr-Commit-Position: refs/heads/master@{#25979}
2015-01-07 15:44:22 +00:00
ishell
0d6785805c Correct handling of exceptions occured during getting of exception stack trace.
BUG=chromium:444805
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25978}
2015-01-07 14:50:16 +00:00
bmeurer
e53845d41c [turbofan] Cleanup Graph and related classes.
- Move NodeMarker to its own file, and introduce a non
  templatized base class.
- Cleanup the include hell.
- Sanitize the Node construction methods now that we
  got rid of that GenericNode/GenericGraph stuff.
- Protect against NodeId overflow in Graph.
- Various minor cleanups.

TEST=cctest,mjsunit,unittests

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

Cr-Commit-Position: refs/heads/master@{#25977}
2015-01-07 14:42:49 +00:00
titzer
d77d3ba9a3 Fix bug in Runtime_CompileOptimized resulting from stack overflow.
R=jarin@chromium.org
BUG=chromium:446389
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25974}
2015-01-07 13:43:44 +00:00
jarin
80a7be5cd9 Restrict representation inference to avoid truncation of phi inputs.
BUG=chromium:446778
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25967}
2015-01-07 11:38:54 +00:00
bmeurer
ec35c52e54 [turbofan] Generalize constant propagation.
Also support additional number types (singleton ranges, NaN and minus
zero) for constant propagation in typed lowering.

TEST=unittests

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

Cr-Commit-Position: refs/heads/master@{#25963}
2015-01-07 08:24:38 +00:00