Commit Graph

26743 Commits

Author SHA1 Message Date
bmeurer
3c9ac974f2 [turbofan] Unstable prototype maps are not supported currently.
We currently assume that all prototype maps are stable, which is
not guaranteed for certain keyed access patterns. So we explicitly
disallow optimizing the element access there for now.

BUG=chromium:557807, v8:4470
R=jarin@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32101}
2015-11-19 06:21:06 +00:00
v8-autoroll
93b1a632f5 Update V8 DEPS.
Rolling v8/build/gyp to e1133480da78cd4a23a8cec604d1d6d46dab35d6

Rolling v8/buildtools to 818123dac34899ec230840936fc15b8b2b5556f9

Rolling v8/tools/clang to 650a79a0bd9b486fa688d8a71ce00674e9e2c096

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32100}
2015-11-19 04:21:00 +00:00
adamk
ed7d795483 [api] Remove deprecated and unused Set/Map::FromArray
R=jochen@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng

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

Cr-Commit-Position: refs/heads/master@{#32099}
2015-11-19 02:20:20 +00:00
adamk
7d1d978654 Rename destructuring flag to "--harmony-destructuring-bind"
This is in preparation for the addition of --harmony-destructuring-assignment.

BUG=v8:811
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32098}
2015-11-18 23:30:09 +00:00
mlippautz
973377e5d6 Reland "[heap] Turn on parallel compaction"
BUG=chromium:524425
LOG=N
CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg;tryserver.v8:v8_linux_gc_stress_dbg;tryserver.v8:v8_mac_gc_stress_dbg;tryserver.v8:v8_linux64_msan_rel;tryserver.v8:v8_linux64_tsan_rel

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

Cr-Commit-Position: refs/heads/master@{#32097}
2015-11-18 20:05:29 +00:00
bradnelson
0acb70baaf Fix multiple return statements in typing-asm, cleanup.
The last change to typing-asm broke non-final return statements.
Fixing this.

Finishing out a partially completed test that landed by mistake.

BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-asm-validator
R=titzer@chromium.org,aseemgarg@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32096}
2015-11-18 19:48:00 +00:00
mstarzinger
c0bf04b119 Simplify dispatch in optimizing compile stubs.
This is to re-establish a single choke point for lazy compile stubs in
preparation for CallRuntimePassFunction being changed soon.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32095}
2015-11-18 19:34:35 +00:00
balazs.kilvady
c91bcf7192 MIPS: Fix trampoline pool handling in MacroAssembler::BranchShort() for r6.
BUG=chromium:555543
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32094}
2015-11-18 17:43:34 +00:00
mlippautz
eb8a42383c Wait for cancelable task after tearing down the heap.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32093}
2015-11-18 17:37:31 +00:00
ofrobots
db867c2bd8 ability to build d8 w/ post-mortem data
post-mortem data can be useful for debugging, specially with the new llnode [1]
extensions for lldb.

[1] https://github.com/indutny/llnode

R=yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32092}
2015-11-18 15:55:46 +00:00
ofrobots
0514fa204a [heap] make inline-allocation-observers precise
Now that we no longer require AllocationInfo::limit to be aligned [1], we can do
more accurate inline-allocation-observation. This lets us get notified when the
next allocation that crosses the step-size boundary is allocated.

Fixed the test-cases. They make significantly more sense now given the step
sizes and the number of times we get notifications. For example, with a step
size of 512, an allocation of 16kb results in 32 notifications instead of 30
now.

[1] https://codereview.chromium.org/1444883003

R=hpayer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32091}
2015-11-18 15:55:02 +00:00
mlippautz
1511374ac5 [tools] Add meta script for convenient ranking of GC NVP output.
R=hpayer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32090}
2015-11-18 15:46:44 +00:00
mlippautz
463a6d273d Revert of Reland "[heap] Turn on parallel compaction" (patchset #1 id:20001 of https://codereview.chromium.org/1460663002/ )
Reason for revert:
Failing:
  https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64%20ASAN/builds/7903/

Original issue's description:
> Reland "[heap] Turn on parallel compaction"
>
> This reverts commit aa4688c185.
>
> BUG=chromium:524425
> LOG=N
> CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg;tryserver.v8:v8_linux_gc_stress_dbg;tryserver.v8:v8_mac_gc_stress_dbg;tryserver.v8:v8_linux64_msan_rel;tryserver.v8:v8_linux64_tsan_rel
>
> Committed: https://crrev.com/ac1d2b21bbb50572b99de4bed568437d51468e01
> Cr-Commit-Position: refs/heads/master@{#32088}

TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:524425

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

Cr-Commit-Position: refs/heads/master@{#32089}
2015-11-18 15:42:36 +00:00
mlippautz
ac1d2b21bb Reland "[heap] Turn on parallel compaction"
This reverts commit aa4688c185.

BUG=chromium:524425
LOG=N
CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg;tryserver.v8:v8_linux_gc_stress_dbg;tryserver.v8:v8_mac_gc_stress_dbg;tryserver.v8:v8_linux64_msan_rel;tryserver.v8:v8_linux64_tsan_rel

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

Cr-Commit-Position: refs/heads/master@{#32088}
2015-11-18 15:25:47 +00:00
mstarzinger
8a57c81b3a [turbofan] Fix CFI failures in BytecodeGraphBuilder unit test.
This fixes undefined behavior with the OpParameter helper in some of our
node matchers. There was a constness mismatch of the template parameter.

R=oth@chromium.org,mythria@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32087}
2015-11-18 14:16:10 +00:00
mlippautz
2ed3893b4f [profiler] Move away from UnboundedQueue to LockedQueue for regular events.
Replaces the UnboundedQueue (SP/SC) with LockedQueue (MP/MC). This is necessary
as we can have multiple tasks (on multiple platform threads) reporting code move
events.

Note that the sampling queue is not affected by this change.

BUG=chromium:524425
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32086}
2015-11-18 14:14:49 +00:00
jkummerow
107699483d Fix PropertyDescriptor::ToObject
When adding properties to the result object, that object's prototype chain should be ignored.

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

Cr-Commit-Position: refs/heads/master@{#32085}
2015-11-18 13:56:51 +00:00
yangguo
5bcddae76f [crankshaft] only compile string index access with element key.
R=bmeurer@chromium.org
BUG=chromium:554831
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32084}
2015-11-18 13:53:34 +00:00
mstarzinger
e90a0b3cef [turbofan] Ship TurboFan with spread expressions.
This triggers TurboFan whenever functions containing spread expressions
of any kind are marked for optimization. Note that this increases the
set of functions being eligible for optimization.

R=rossberg@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32083}
2015-11-18 13:52:12 +00:00
titzer
70a133385c [turbofan] Remove case_count >= 3 limit for switch.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32082}
2015-11-18 13:51:29 +00:00
jarin
e5ea13e230 [turbofan] Check word32 -> float64 conversion with input type/output truncation.
This makes sure we are using the right signedness - either the input
specifies signedness or the use must declare it does not care.

This requires some hole-punching in for-in so that the
representation selector understands the smi-ness of index.
Moreover, phi needs to pass the truncation along (maybe
slightly scary).

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

Cr-Commit-Position: refs/heads/master@{#32081}
2015-11-18 13:49:52 +00:00
mstarzinger
1582f37cd8 [turbofan] Fix CFI failures with Operator1 class.
This ensures the class in question specifies the correct equality and
hashing function when instantiated. Note that this introduces two new
structs (i.e. OpEqualTo and OpHash) which can be used for defaults
within OpParameter as well.

R=titzer@chromium.org,bmeurer@chromium.org
TEST=cctest/test-operator

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

Cr-Commit-Position: refs/heads/master@{#32080}
2015-11-18 13:48:31 +00:00
mstarzinger
279f2aad93 [turbofan] Fix deoptimization from array literal spread.
This fixes the array literal expression stack tracking in the presence
of spread expressions. Deoptimization within a spread expression was
borked.

R=bmeurer@chromium.org
TEST=mjsunit/regress/regress-deopt-in-array-literal-spread

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

Cr-Commit-Position: refs/heads/master@{#32079}
2015-11-18 11:45:41 +00:00
mlippautz
6c85c14845 Add lock-based unbounded queue
...based on the 2-lock algorithm by M. Scott and M. Michael (1992).

BUG=chromium:524425
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32078}
2015-11-18 10:54:13 +00:00
mlippautz
95ff297113 [tools] Allow specifying cores for cpu.sh script.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32077}
2015-11-18 10:53:30 +00:00
bmeurer
9b14e5bb63 [turbofan] Decouple inlining and native context specialization.
Retrieve the native context/global object from the Node being
specialized in the JSNativeContextSpecialization and the
JSGlobalObjectSpecialization classes. For this we introduce two
new methods NodeProperties::GetSpecializationNativeContext and
NodeProperties::GetSpecializationGlobalObject, which walk up
the context chain and might in the end take the native context
from the outermost activation (if native context specialization
is enabled). This allows us to run the native context specialization
pass as part of the inlining phase without hacking some of that into
the JSInliner.

Also refactor the NodeProperties::GetSpecializationContext method
that was previously local to the JSContextSpecialization.

Also refactor two other oddities in JSNativeContextSpecialization.

R=jarin@chromium.org
BUG=v8:4470, v8:4493
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32076}
2015-11-18 10:04:03 +00:00
jarin
a9fa0498e1 [turbofan] Only infer signedness for Float64->Word32 representation change from the input type.
If the input type does not help us, we are conservative and truncate (rather than guessing signed).

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

Cr-Commit-Position: refs/heads/master@{#32075}
2015-11-18 10:02:33 +00:00
hpayer
23bf71d706 Use proper write barriers instead of RecordWrites when copying object elements.
This CL brings us one step closer to untangle the runtime-gc dependency, i.e. RecordWrites should not be called from the runtime.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32074}
2015-11-18 09:46:45 +00:00
zhengxing.li
30d6a4deb2 X87: Handle StepIn for constructors through PrepareStep just like for regular calls.
port 14ec485c3a (r32044)

  original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32073}
2015-11-18 08:32:35 +00:00
jochen
3e882ff1ea Remove deprecated APIs from two more tests
BUG=4134
R=epertoso@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32072}
2015-11-18 08:22:30 +00:00
mtrofin
0bcfb26e7c [turbofan] reduce ResolveControlFlow overhead.
I found this optimization opportunity when analyzing some pathological
compile-time examples. When tying together live ranges across control
flow boundaries, we used to repeatedly check if the top level range was
spilled in deferred blocks or not. This proved to be a hotspot in such
cases (i.e. the pathological compile time ones).

Because the analysis needs to progress block by block and not live range by live range, we cannot feasibly save per-range information to
remove the hotspot. Instead, we save this information when
constructing LiveRangeBounds.

The result is 2.5 to 7% improvement in the pathological cases, and a few
similar bonuses in perf in a couple of other benchmarks.

Also, opportunistically removed the loop counting the number of child
ranges, since we have that count from the new (post - refactoring)
range numbering technique.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32071}
2015-11-18 06:48:04 +00:00
bmeurer
3e328bf254 [turbofan] Add support for special JSArrayBufferView accessors.
Lower access to byteOffset and byteLength getters on JSArrayBufferViews
and to length on JSTypedArrays. This requires a check to see whether the
backing JSArrayBuffer was neutered.

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

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

Cr-Commit-Position: refs/heads/master@{#32070}
2015-11-18 06:33:04 +00:00
zhengxing.li
9f594402c3 X87: Experimental support for RegExp lookbehind.
port 906903acb5 (r32043)

  original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32069}
2015-11-18 04:43:11 +00:00
zhengxing.li
1d568d77ec X87: VectorICs: Remove --vector-stores flag.
port e75e625453 (r32040)

  original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32068}
2015-11-18 04:35:05 +00:00
zhengxing.li
2772f1ceef X87: Rename original constructor to new target.
port 07c1d181e7 (r32023)

  original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32067}
2015-11-18 04:32:33 +00:00
v8-autoroll
0965809215 Update V8 DEPS.
Rolling v8/tools/clang to ccc0be4f85403b607fd7426cb86c4db2f49b02f6

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32066}
2015-11-18 04:20:44 +00:00
neis
b270813388 [es6] Partially implement Reflect.ownKeys.
Proxies are not properly supported yet.

This is a reland of 1405243006.

TBR=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32065}
2015-11-18 00:52:50 +00:00
pan.deng
81fe5b3c45 Support SAB atomics for offset-TypedArray
BUG=497295
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32064}
2015-11-18 00:19:54 +00:00
neis
8e5840e19b Sort names in JSObject::CollectOwnPropertyNames.
R=cbruni, rossberg
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32063}
2015-11-18 00:07:07 +00:00
dusan.m.milosavljevic
74145470dd MIPS: Enable logical shift right and bitwise And matching to Ext, Dext.
TEST=unittests/InstructionSelectorTest/Word32ShrWithWord32AndWithImmediate,
     Word32AndWithImmediateWithWord32Shr, Word64AndWithImmediateWithWord64Shr,
     Word64AndWithImmediateWithWord64Shr
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32062}
2015-11-17 23:10:59 +00:00
dusan.m.milosavljevic
5d843f26a9 MIPS64: [turbofan] Combine untagging shifts with Mul, Div and Mod.
TEST=unittests/InstructionSelectorTest.CombineShiftsWithMul,
     InstructionSelectorTest.CombineShiftsWithDivMod
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32061}
2015-11-17 22:52:54 +00:00
mbrandy
fc4c55108d PPC: Handle StepIn for constructors through PrepareStep just like for regular calls
Port 14ec485c3a

R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32060}
2015-11-17 20:03:14 +00:00
mbrandy
5019ce6ef3 PPC: [turbofan] Move JSCallFunction specialization to JSCallReducer.
Port e5edd66d07

Original commit message:
    This is the first part to refactoring the JSNativeContextSpecialization
    class, which has grown way too big recently.

    Also don't collect cross context feedback for the CallIC in general.
    Neither TurboFan nor Crankshaft can make any use of cross context
    JSFunction feedback that is collected by the CallIC, so there's no
    point in gathering that feedback at all (it just complicates the
    checking that is necessary in the compilers). What we should do
    instead at some point (when Crankshaft becomes less important) is
    to collect the SharedFunctionInfo as feedback for those cases.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:4470
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32059}
2015-11-17 19:44:32 +00:00
mbrandy
fe85704a53 PPC: VectorICs: Remove --vector-stores flag.
Port e75e625453

R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32058}
2015-11-17 19:43:48 +00:00
bradnelson
c1da268e5d Use asm style type names and improve asm typer.
The current typing-asm mishandles the relationship between
unsigned numbers and int. Restructuring and using type shortcuts
that approximate asm types.

BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-asm-validator
R=titzer@chromium.org,aseemgarg@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32057}
2015-11-17 19:42:30 +00:00
mbrandy
e852c49eea PPC: Experimental support for RegExp lookbehind.
Port 906903acb5

R=yangguo@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:4545
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32056}
2015-11-17 19:41:13 +00:00
mbrandy
acf3baf44c PPC: Rename original constructor to new target
Port 07c1d181e7

R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32055}
2015-11-17 19:39:55 +00:00
Djordje.Pesic
d404458849 MIPS: Enable movt, movz, movn and movf instructions on mips32r1
Review URL: https://codereview.chromium.org/1448843002

Cr-Commit-Position: refs/heads/master@{#32054}
2015-11-17 16:56:47 +00:00
akos.palfi
0403fd860c Fix gcc 4.9.2 signed-compare error.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32053}
2015-11-17 16:07:33 +00:00
caitpotter88
5bf360ef57 [es6] early error when Identifier is an escaped reserved word
Per http://tc39.github.io/ecma262/#sec-identifiers-static-semantics-early-errors (13.2.2),
make it a SyntaxError if an Identifier has the same StringValue as a ReservedWord.

BUG=v8:2222, v8:1972
LOG=N
R=adamk@chromium.org, rossberg@chromium.org, wingo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32052}
2015-11-17 16:00:11 +00:00