Commit Graph

22962 Commits

Author SHA1 Message Date
yangguo
50ccb14913 Store fewer arrays in the context snapshot.
This slightly reduces the initial context size.

R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28420}
2015-05-15 13:00:20 +00:00
bmeurer
1643671f1b [turbofan] Pass closure as node to FrameState.
First step towards support for inlining based on SharedFunctionInfo
instead of JSFunction.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28419}
2015-05-15 12:17:05 +00:00
ishell
3c1487db60 Map::ReconfigureProperty() should mark map as unstable when there is an element kind transition somewhere in the middle of the transition tree.
BUG=chromium:485548
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28418}
2015-05-15 10:39:51 +00:00
dslomov
7f6ae2300b [destructuring] Adapting PatternRewriter to work in C-style for-statements.
BUG=v8:811
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28417}
2015-05-15 09:56:24 +00:00
hpayer
bc9e53406e When context disposal rate is high and we cannot perform a full GC, we do nothing until the context disposal rate becomes lower.
BUG=chromium:473351
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28416}
2015-05-15 07:48:07 +00:00
yangguo
abbaac4845 Reland "Prevent stack overflow in the serializer/deserializer."
TBR=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28415}
2015-05-15 07:42:35 +00:00
jochen
6dd52eaf47 Remove static logging of memory allocations
We want to move to a world where there's no Isolate::Current but we
always knows which isolate we're in. There's no way we can teach this
info to the C++ allocator.

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

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

Cr-Commit-Position: refs/heads/master@{#28414}
2015-05-15 07:37:08 +00:00
paul.lind
cbfb7cc1b1 Fix Heap::AllocateFillerObject() to use double alignment param.
This is called from Runtime, and was dropping the requested alignment
for doubles. Needed for upcoming MIPS CL to remove some more
workarounds for load/store doubles.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28413}
2015-05-15 06:49:35 +00:00
martyn.capewell
cdc43bc5fd ARM64: Enable shorten-64-to-32 warning
Enable clang's shorten-64-to-32 warning flag on ARM64, and fix the warnings
that arise.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28412}
2015-05-15 05:13:11 +00:00
v8-autoroll
670ff36d82 Update V8 DEPS.
Rolling v8/tools/clang to 50042056ee1589e57bdb6ecba4609a7da51c7ec4

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28411}
2015-05-15 03:25:05 +00:00
jochen
3a319037df Remove Isolate::Current() call from jsregexp
BUG=none
R=vogelheim@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28410}
2015-05-15 02:08:48 +00:00
dehrenberg
85c91f639e Test that TypedArray methods don't read length
ES6 specifies that methods on TypedArrays reference an internal length
slot, rather than their length property. This patch tests that for the
TypedArray methods that exist currently.

R=arv@chromium.org
BUG=v8:3578
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#28409}
2015-05-15 02:03:44 +00:00
jochen
96ab3dce5d Remove unnecessary Isolate::Current calls from hydrogen-instructions
BUG=none
R=vogelheim@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28408}
2015-05-15 01:49:21 +00:00
jochen
7590d302e3 Fix deprecation declarations in headers
BUG=none
R=ulan@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28407}
2015-05-15 01:48:20 +00:00
jochen
8324dfdb69 Remove unnecessary call to Isolate::Current in parser-shell
R=vogelheim@chromium.org
BUG=none
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28406}
2015-05-15 01:47:09 +00:00
caitpotter88
3a18b9b71b [es6] support spread-calling Super-accessing properties
BUG=v8:4105, v8:3018
LOG=N
R=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28405}
2015-05-14 22:59:14 +00:00
paul.lind
d090469cdd Revert of MIPS: Add float instructions and test coverage, part one
Reason for revert:
Simulator test failures in RunChangeFloat64ToInt.., RunChangeTaggedToInt32,
div-mul-minus-one

Original issue's description:

> Implement assembler, disassembler tests for all instructions for mips32
> and mips64. Additionally, add missing single precision float instructions
> for r2 and r6 architecture variants in assembler, simulator and disassembler
> with corresponding tests.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28404}
2015-05-14 18:44:41 +00:00
machenbach
e1b5db6c8d Revert of Prevent stack overflow in the serializer/deserializer. (patchset #6 id:100001 of https://codereview.chromium.org/1125073004/)
Reason for revert:
[Sheriff] Breaks msan:
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/2266

Original issue's description:
> Prevent stack overflow in the serializer/deserializer.
>
> We keep an eye on the recursion depth. Once it exceeds a limit, we serialize
> only the object header and size, but defer serializing the object body for
> after we have unwound the stack.
>
> R=mvstanton@chromium.org
>
> Committed: https://crrev.com/36b4a498d6614243454d5a182e4946b0dad24f0a
> Cr-Commit-Position: refs/heads/master@{#28385}

TBR=mvstanton@chromium.org,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28403}
2015-05-14 14:59:23 +00:00
Djordje.Pesic
2a6a87d71a MIPS: Add float instructions and test coverage, part one
Implement assembler, disassembler tests for all instructions for mips32 and mips64. Additionally, add missing single precision float instructions for r2 and r6 architecture variants in assembler, simulator and disassembler with corresponding tests.

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

Cr-Commit-Position: refs/heads/master@{#28402}
2015-05-14 14:02:36 +00:00
chunyang.dai
19a421c694 Revert "X87: Resolve references to "this" the same way as normal variables"
This reverts commit 6eea252463.

revert reason:
   original patch is reverted.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28401}
2015-05-14 09:22:47 +00:00
v8-autoroll
5d8f27f64f Update V8 DEPS.
Rolling v8/testing/gtest to 23574bf2333f834ff665f894c97bef8a5b33a0a9

Rolling v8/tools/clang to 17e168207560f2dfdf95e50c5eb79e6d3ac1eaf6

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28400}
2015-05-14 03:26:09 +00:00
titzer
8cc7e70098 [turbofan] Treat uninitialized source positions as unknown.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28399}
2015-05-13 16:07:55 +00:00
titzer
6c96d6564c [turbofan] Reenable feedback for LoadNamed.
R=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28398}
2015-05-13 13:50:39 +00:00
wingo
a9f45ce9ac Rely on ExpressionClassifier to match valid arrow function formals
R=dslomov@chromium.org
LOG=N
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28397}
2015-05-13 13:32:23 +00:00
rossberg
9be59492f9 [strong] Introduce strong bit
Only set on strong functions so far to test basic operation.

R=dslomov@chromium.org
BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28396}
2015-05-13 13:31:12 +00:00
yangguo
e24b31f003 Revert "Resolve references to "this" the same way as normal variables"
... and the following two
"PPC: Resolve references to "this" the same way as normal variables"
"Remove Scope::scope_uses_this_ flag"

R=hablich@chromium.org
BUG=chromium:487289
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28395}
2015-05-13 13:30:01 +00:00
Ben L. Titzer
96f8baac66 [turbofan] Turn off type feedback in turbo mode until StoreNamed issue is resolved.
TBR=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28394}
2015-05-13 13:08:21 +00:00
bmeurer
225a6adc2a [turbofan] Lower more number operations to integer operations.
If the typer was able to prove that a NumberAdd/Sub/Mul/Div/Mod always
produces a Signed32/Unsigned32 value, and the inputs are
Signed32/Unsigned32, we can lower the node to the corresponding integer
operation instead, no matter what the uses are.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28393}
2015-05-13 12:53:53 +00:00
titzer
29e15dad16 [turbofan] Add FrameStates before all property accesses.
R=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28392}
2015-05-13 12:29:32 +00:00
wingo
e73594c7fb Use ExpressionClassifier to identify valid arrow function formals
R=dslomov@chromium.org
LOG=N
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28391}
2015-05-13 11:45:02 +00:00
chunyang.dai
6eea252463 X87: Resolve references to "this" the same way as normal variables
port bd56d279b6 (R28340).

original commit message:

    Make the parser handle references to "this" as unresolved variables, so the
    same logic as for the rest of function parameters is used for the receiver.
    Minor additions to the code generation handle copying the receiver to the
    context, along with the rest of the function parameters.

    Based on work by Adrian Perez de Castro <aperez@igalia.com>.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28390}
2015-05-13 11:18:38 +00:00
bmeurer
5494920a18 [turbofan] Use frame state before for shift operations as well.
This was already done for other binary operations, so it's basically
copying the existing functionality to shift left and shift right
logical/arithmetic.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28389}
2015-05-13 11:17:28 +00:00
chunyang.dai
3ba6783565 X87: New hydrogen instruction to reduce cost of growing an array on keyed stores.
port 3bce9c3afb (r28359).

original commit message:

    HMaybeGrowElements moves the situation where you actually have to grow
    into deferred code. This means crankshaft doesn't have to spill registers
    just to make the bounds comparison to see if it'll need to grow or not.

    It makes the growing case a bit more expensive, but reduces the cost of
    the general case.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28388}
2015-05-13 11:16:18 +00:00
chunyang.dai
fecaed531b X87: [strong] Check arity of functions
port 3226e98020 (28346).

original commit message:

    [strong] Check arity of functions

    In strong mode it is an error to call a function with too few
    arguments.

    This is enforced inside the ArgumentsAdaptorTrampoline.

    This does not yet handle rest parameter

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28387}
2015-05-13 11:15:34 +00:00
chunyang.dai
6803006b2d X87: Add a MathFloor stub generated with TurboFan
port  abc35080b3 (r28339)

original commit message:

    This stub will be used as the basis of a Math.floor-specific CallIC to
    detect and track calls to floor that return -0.

    Along the way:
    - Create a TurboFanCodeStub super class from which the StringLength and
    MathRound TF stubs derive.
    - Fix the ugly hack that passes the first stub parameter as the "this"
    pointer in the the TF-compiled JS function.
    - Fix bugs in the ia32/x64 disassembler.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28386}
2015-05-13 11:14:26 +00:00
yangguo
36b4a498d6 Prevent stack overflow in the serializer/deserializer.
We keep an eye on the recursion depth. Once it exceeds a limit, we serialize
only the object header and size, but defer serializing the object body for
after we have unwound the stack.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28385}
2015-05-13 10:18:26 +00:00
machenbach
687e6ddf47 [test] Make perf runner able to pass extra flags to d8.
TEST=tools/run_perf.py --arch x64 --extra-flags="--turbo --turbo-verify-allocation --turbo-greedy-regalloc" /path/to/SunSpider.json
BUG=484208
LOG=n
TBR=tandrii@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28384}
2015-05-13 10:00:36 +00:00
bmeurer
2111d18dba [turbofan] Add frame state before JavaScript comparisons.
Use these check points to optimize comparisons where we already know
that one side cannot be a String (or turn into a string via
ToPrimitive).

Also remove bunch of useless DoNotCrash tests for the scheduler that are
painful to maintain and add almost no value.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28383}
2015-05-13 07:38:35 +00:00
dehrenberg
b57428e9ef Implement %TypedArray%.{fill,find,findIndex}
This patch adds three methods to TypedArrays which are already
implemented for arrays. The implementations are made by calling
out to the underlying code used by Arrays.

R=adamk@chromium.org
BUG=v8:3578
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#28382}
2015-05-13 04:32:08 +00:00
dehrenberg
a863c4d3d8 TypedArray.prototype.copyWithin method
This patch adds the copyWithin method to TypedArrays. For the first
pass, the internals of Array.copyWithin are used. Eventually, a more
efficient form based on memcpy could be used instead.

BUG=v8:3578
LOG=Y
R=adamk@chromium.org, arv@chromium.org, caitpotter88@gmail.com

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

Cr-Commit-Position: refs/heads/master@{#28381}
2015-05-12 19:20:56 +00:00
dslomov
0b620ad5e5 Fix test formatting
TBR=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28380}
2015-05-12 18:12:54 +00:00
arv
547a641e2c [strong] Add more function arity tests
This is a follow up to https://codereview.chromium.org/1115263004/

BUG=v8:3956
LOG=N
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28379}
2015-05-12 17:37:25 +00:00
ulan
bbca83c398 Make transition to reduce memory mode more conservative in idle time handler.
BUG=chromium:486005
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#28378}
2015-05-12 17:24:58 +00:00
dslomov
30b771a662 Fix the behavior of 'super.foo' assignment when receiver is not an object.
R=arv@chromium.org,verwaest@chromium.org
BUG=v8:4097
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28377}
2015-05-12 17:13:07 +00:00
mvstanton
91a8810556 Make LoadFastElementStub a HandlerStub.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28376}
2015-05-12 16:51:11 +00:00
mbrandy
483436219f PPC: Fix '[strong] Disallow implicit conversions for comparison'
Do not trash type register in kIsNotStringMask test.

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

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

Cr-Commit-Position: refs/heads/master@{#28375}
2015-05-12 16:48:14 +00:00
mbrandy
174242fbbe PPC: Fix '[strong] Disallow implicit conversions for comparison'
Fix build break.

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

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

Cr-Commit-Position: refs/heads/master@{#28374}
2015-05-12 16:43:19 +00:00
hpayer
9dc99e9cc8 Get more debugging data when crashing in Deoptimizer::GetOutputInfo.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28373}
2015-05-12 15:48:06 +00:00
mbrandy
09ecf6cef7 PPC: New hydrogen instruction to reduce cost of growing an array on keyed stores.
Port 3bce9c3afb

Original commit message:
HMaybeGrowElements moves the situation where you actually have to grow
into deferred code. This means crankshaft doesn't have to spill registers
just to make the bounds comparison to see if it'll need to grow or not.

It makes the growing case a bit more expensive, but reduces the cost of
the general case.

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

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

Cr-Commit-Position: refs/heads/master@{#28372}
2015-05-12 15:42:31 +00:00
yurys
ae6ec1861e Provide accessor for object internal properties that doesn't require debugger to be active
Some of the DevTools' clients need to inspect JS objects without enabling debugger. This CL allows to inspect object's internal properties without enabling debugger and instantiating debug context.

Note that now debug context can be created lazily if v8::Debug::GetDebugContext is called when there is no debug listener. This is fragile and has already resulted in some subtle error. I'm going to fix that in a separate CL.

BUG=chromium:481845
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#28371}
2015-05-12 15:40:27 +00:00