Commit Graph

23985 Commits

Author SHA1 Message Date
bmeurer
069a47f6e5 [turbofan] Context specialization is the job of the JSContextSpecialization.
Remove the context specialization hack from the AstGraphBuilder, and
properly specialize to the function context in the context specialization.
And replace the correct context in the JSInliner.

R=mstarzinger@chromium.org
BUG=v8:4273
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29493}
2015-07-06 12:56:28 +00:00
machenbach
90d0f67fd6 [test] Push binaries to separate folders on Android devices.
BUG=chromium:507213
LOG=n
NOTRY=true
TBR=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29492}
2015-07-06 12:37:48 +00:00
machenbach
7d5db46e89 [test] Add android perf trybots.
BUG=chromium:502176
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#29491}
2015-07-06 12:17:27 +00:00
bmeurer
870ce53a53 [turbofan] Fix value output count for the Start node.
The value output count for Start is currently off by 1 for code stubs,
because the CommonOperatorBuilder hardcodes the receiver parameter.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29490}
2015-07-06 12:11:59 +00:00
machenbach
e595f33f5c [test] Port clobber of old test262 archive files.
BUG=v8:4254
LOG=n
NOTRY=true
TBR=jkummerow@chromium.org
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#29489}
2015-07-06 12:09:46 +00:00
mstarzinger
422e0c4a91 [turbofan] Cleanup Parameter creation in AstGraphBuilder.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29488}
2015-07-06 11:50:05 +00:00
yangguo
a8a4c364c2 Debugger: use debug break slots instead of ICs (except for calls).
BUG=v8:3147,v8:4269
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29487}
2015-07-06 11:16:02 +00:00
bmeurer
ef661b0804 [turbofan] Reland "Add new JSFrameSpecialization reducer." and "Perform OSR deconstruction early and remove type propagation.".
We have to reland these two commits at once, because the first breaks
some asm.js benchmarks without the second. The change was reverted
because of bogus checks in the verifier, which will not work in the
presence of OSR (and where hidden because of the type back propagation
hack in OSR so far). Original messages are below:

[turbofan] Add new JSFrameSpecialization reducer.

The JSFrameSpecialization specializes an OSR graph to the current
unoptimized frame on which we will perform the on-stack replacement.
This is used for asm.js functions, where we cannot reuse the OSR
code object anyway because of context specialization, and so we could as
well specialize to the max instead.

It works by replacing all OsrValues in the graph with their values
in the JavaScriptFrame.

The idea is that using this trick we get better performance without
doing the unsound backpropagation of types to OsrValues later. This
is the first step towards fixing OSR for TurboFan.

[turbofan] Perform OSR deconstruction early and remove type propagation.

This way we don't have to deal with dead pre-OSR code in the graph
and risk optimizing the wrong code, especially we don't make
optimistic assumptions in the dead code that leaks into the OSR code
(i.e. deopt guards are in dead code, but the types propagate to OSR
code via the OsrValue type back propagation).

BUG=v8:4273
LOG=n
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29486}
2015-07-06 11:11:26 +00:00
fedor
b199bcdd47 unicode-decoder: fix out-of-band write in utf16
`WriteUtf16Slow` should not assume that the output buffer has enough
bytes to hold both words of surrogate pair. It should pass the number of
remaining bytes to the `Utf8::ValueOf` instead, just as we already do in
`Utf8DecoderBase::Reset`. Otherwise it will attempt to write the trail
uint16_t past the buffer boundary, leading to memory corruption and
possible crash.

Originally reported by: Kris Reeves <kris.re@bbhmedia.com>

BUG=v8:4274
R=danno
R=svenpanne
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#29485}
2015-07-06 11:00:12 +00:00
verwaest
9599bad420 Wrap elements.cc in an anonymous namespace
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29484}
2015-07-06 10:40:38 +00:00
machenbach
b4b55db23d Revert of [test] Move test262-es6 into test262. (patchset #2 id:20001 of https://codereview.chromium.org/1215303008/)
Reason for revert:
[Sheriff] Breaks test262 on mac

Original issue's description:
> [test] Move test262-es6 into test262.
>
> BUG=v8:4254
> LOG=n
>
> Committed: https://crrev.com/aaa457b26f6c0f624cf5887e60dc497f6dccabae
> Cr-Commit-Position: refs/heads/master@{#29479}

TBR=rossberg@chromium.org,arv@chromium.org,littledan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4254

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

Cr-Commit-Position: refs/heads/master@{#29483}
2015-07-06 10:35:34 +00:00
verwaest
8ad313545d Always mark entire prototype descriptor arrays.
BUG=chromium:506952
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29482}
2015-07-06 10:33:28 +00:00
yangguo
f7b0ee3425 Do not truncate message strings.
R=ishell@chromium.org
BUG=chromium:505539
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29481}
2015-07-06 10:26:04 +00:00
machenbach
9e71cdba48 Revert "[turbofan] Add new JSFrameSpecialization reducer."
Also revert "[turbofan] Perform OSR deconstruction early and remove type propagation."

This reverts commit b0a852e8c2.

This reverts commit cdbb6c485b.

NOTRY=true
NOTREECHECKS=true
BUG=v8:4273
LOG=n
TBR=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29480}
2015-07-06 10:01:42 +00:00
machenbach
aaa457b26f [test] Move test262-es6 into test262.
BUG=v8:4254
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29479}
2015-07-06 09:24:46 +00:00
bmeurer
cdbb6c485b [turbofan] Perform OSR deconstruction early and remove type propagation.
This way we don't have to deal with dead pre-OSR code in the graph and
risk optimizing the wrong code, especially we don't make optimistic
assumptions in the dead code that leaks into the OSR code (i.e. deopt
guards are in dead code, but the types propagate to OSR code via the
OsrValue type back propagation).

BUG=v8:4273
LOG=n
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29478}
2015-07-06 09:15:28 +00:00
verwaest
dba715ec6a Cleanup Delete backend implementation.
BUG=v8:4137
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29477}
2015-07-06 08:53:51 +00:00
bmeurer
b0a852e8c2 [turbofan] Add new JSFrameSpecialization reducer.
The JSFrameSpecialization specializes an OSR graph to the current
unoptimized frame on which we will perform the on-stack replacement.
This is used for asm.js functions, where we cannot reuse the OSR code
object anyway because of context specialization, and so we could as well
specialize to the max instead.

It works by replacing all OsrValues in the graph with their values in
the JavaScriptFrame.

The idea is that using this trick we get better performance without
doing the unsound backpropagation of types to OsrValues later. This is
the first step towards fixing OSR for TurboFan.

R=jarin@chromium.org
BUG=v8:4273
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29476}
2015-07-06 08:27:12 +00:00
machenbach
9bb826459d Revert of Concurrent sweeping of code space. (patchset #4 id:60001 of https://codereview.chromium.org/1222013002/)
Reason for revert:
[Sheriff] Increased flaky crashes. See:
https://code.google.com/p/v8/issues/detail?id=4275

Original issue's description:
> Concurrent sweeping of code space.
>
> BUG=
>
> Committed: https://crrev.com/3050b52f57d652dc45c8baf416e174f22dc2c159
> Cr-Commit-Position: refs/heads/master@{#29456}

TBR=jochen@chromium.org,hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29475}
2015-07-06 08:26:13 +00:00
jochen
da529a1243 Remove usage of to-be-deprecated APIs from tools
BUG=v8:4134
R=bmeurer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29474}
2015-07-06 07:11:55 +00:00
jochen
f022e53b95 Make v8::Handle as "deprecated soon"
BUG=v8:4131
R=bmeurer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29473}
2015-07-06 07:09:13 +00:00
mstarzinger
b8ecd94c72 [turbofan] Fix bogus materialization from frame with OSR.
The context constant cannot be materialized from the frame when we are
compiling for OSR, because the context spill slot contains the current
instead of the outermost context in full-codegen.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29472}
2015-07-06 03:40:29 +00:00
mstarzinger
21d330c896 [turbofan] Use OSR value for innermost context value.
This changes the OsrValue insertion in the AstGraphBuilder to emit a
proper OsrValue instead of a special Parameter for the inner context
value at the OSR entry point.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29471}
2015-07-06 03:39:32 +00:00
machenbach
269918927a Revert of Replace reduce-memory mode in idle notification with delayed clean-up GC. (patchset #17 id:320001 of https://codereview.chromium.org/1218863002/)
Reason for revert:
[Sheriff] Looks like it blocks the roll (bisected). Speculative revert.
https://codereview.chromium.org/1210293003/

Original issue's description:
> Replace reduce-memory mode in idle notification with delayed clean-up GC.
>
> BUG=490559
> LOG=NO
>
> Committed: https://crrev.com/0ecd9e1bd2c6b519d4e7285f46cb7e844bc2235c
> Cr-Commit-Position: refs/heads/master@{#29451}

TBR=hpayer@chromium.org,ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=490559

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

Cr-Commit-Position: refs/heads/master@{#29470}
2015-07-05 18:19:03 +00:00
machenbach
435b3c873a Revert of Make ARM compiler happy after 0ecd9e1bd (patchset #1 id:1 of https://codereview.chromium.org/1219863003/)
Reason for revert:
Revert in order to revert 0ecd9e1bd

Original issue's description:
> Make ARM compiler happy after 0ecd9e1bd
>
> BUG=
> TBR=hpayer@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/bef1cbfdf9991f05ca142448098e8076cb7c2d26
> Cr-Commit-Position: refs/heads/master@{#29454}

TBR=ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29469}
2015-07-05 18:17:53 +00:00
verwaest
b0493ed16c Increment descriptor array slack for prototypes by a constant rather than 50%
Additionally speed up instantiation of ObjectTemplates by preallocating enough space in the descriptor arrays

BUG=v8:4184
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29468}
2015-07-03 15:06:51 +00:00
verwaest
e7d64b3f60 Remove obsolete GetAccessorPair from ElementsAccessor
BUG=v8:4137
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29467}
2015-07-03 12:39:01 +00:00
hpayer
4621210cfe Record code slots that may point to evacuation candidate objects after deoptimizing them.
BUG=chromium:506811
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29466}
2015-07-03 12:13:57 +00:00
bmeurer
5f288c201c [turbofan] Right hand side of shifts needs ToUint32.
Currently we lower shifts directly to machine operators, and add an
appropriate Word32And to implement the & 0x1F operation on the right
hand side required by the specification. However for Word32And we assume
Int32 in simplified lowering, which is basically changes the right hand
side bit interpretation for the shifts from Uint32 to Int32, which is
obviously wrong. So now we represent that explicitly by proper
simplified operators for the shifts, which are lowered to machine in
simplified lowering.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29465}
2015-07-03 11:42:00 +00:00
yangguo
787de93f4c Make deserialize-script-id test more robust.
R=machenbach@chromium.org
BUG=v8:4127
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29464}
2015-07-03 11:11:39 +00:00
yangguo
619570b3dd Make sure the constant pool size is as promised.
LOG=N
R=bmeurer@chromium.org
BUG=chromium:506443

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

Cr-Commit-Position: refs/heads/master@{#29463}
2015-07-03 10:32:37 +00:00
Ilija.Pavlovic
75e6717591 MIPS: Disassembler enhancement. Disassembled branch instruction displays branch target absolute address.
TEST=cctest/test-disasm-mips[64]
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29462}
2015-07-03 10:32:03 +00:00
mstarzinger
84f0a33ce0 Serializer forces flushing of optimized code map.
This makes sure that the GC fully flushes the optimized code map when
the serializer is preparing a snapshot. Otherwise closures and contexts
could end up in the startup snapshot.

R=hpayer@chromium.org
TEST=cctest/test-serialize/SerializeInternalReference

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

Cr-Commit-Position: refs/heads/master@{#29461}
2015-07-03 07:47:43 +00:00
titzer
0a5b6ad755 [turbofan] Add Uint64LessThanOrEqual to 64-bit TurboFan backends.
Also add control inputs to 64-bit integer divide and modulus operations.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29460}
2015-07-03 05:14:13 +00:00
dstence
cacb34fc70 PPC: perf enhancement: omit redundant compare with 0
R=mbrandy@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29459}
2015-07-02 18:46:33 +00:00
ulan
d202501199 Fix data-race in default implementation of delayed task.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29458}
2015-07-02 18:25:49 +00:00
ulan
fa7d113aec Grow heap slower if --optimize-for-size flag is on.
BUG=chromium:505776
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#29457}
2015-07-02 18:24:47 +00:00
hpayer
3050b52f57 Concurrent sweeping of code space.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29456}
2015-07-02 16:45:42 +00:00
verwaest
9d0cd81da9 Move slow classes above fast to directly call ReconfigureImpl, remove friends, make things public
BUG=v8:4137
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29455}
2015-07-02 16:44:33 +00:00
ulan
bef1cbfdf9 Make ARM compiler happy after 0ecd9e1bd
BUG=
TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#29454}
2015-07-02 16:29:29 +00:00
mbrandy
6924787105 PPC: [turbofan] Enable tail calls for %_CallRuntime.
Port 1fa4285e1c

Original commit message:
    This involves:
    - Enabling the tail call optimization reducer in all cases.
    - Adding an addition flag to CallFunctionParameters to mark call sites
      that can be tail-called enabled.
    - Only set the tail-call flag for %_CallFunction.

R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29453}
2015-07-02 15:51:11 +00:00
jochen
ebadb68f02 Remove usage of to-be-deprecated APIs from samples
BUG=v8:4134
R=vogelheim@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29452}
2015-07-02 15:42:45 +00:00
ulan
0ecd9e1bd2 Replace reduce-memory mode in idle notification with delayed clean-up GC.
BUG=490559
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#29451}
2015-07-02 15:41:36 +00:00
verwaest
d5335cba31 Avoid converting key to string for deleting of elements
Additionally rips out (now) unnecessary duplicate code in DefineArrayProperty.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29450}
2015-07-02 15:27:28 +00:00
conradw
dbda22fdd1 [strong] Add test for strong load involving proxies
Keeping this CL separate in case there are more GC-stress problems.

BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29449}
2015-07-02 15:24:58 +00:00
conradw
37bf0481de [strong] Add tests for loading from super, loading with access checks
BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29448}
2015-07-02 15:23:48 +00:00
verwaest
c8211b64cd Distinguish slow from fast sloppy arguments
BUG=v8:4137
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29447}
2015-07-02 14:38:53 +00:00
ulan
3f5d39a1d6 Fix memory-leak in default platform implementation of delayed tasks.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29446}
2015-07-02 14:37:32 +00:00
jochen
55f27f7712 Only define V8_USE_EXTERNAL_SNAPSHOT_DATA if we actually use a snapshot
BUG=none
R=vogelheim@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29445}
2015-07-02 14:23:09 +00:00
verwaest
d550e81891 Cleanup API property handling
BUG=v8:4137
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29444}
2015-07-02 13:30:06 +00:00