Commit Graph

29860 Commits

Author SHA1 Message Date
jarin
3df0a8c1f2 [crankshaft] Make infinite loops preserve control flow.
We have to preserve control flow so that the liveness analysis is less
confused. This CL fixes loops to preserve teh original control flow.

BUG=chromium:599710
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35318}
2016-04-07 05:36:44 +00:00
v8-autoroll
ea61d86f0d Update V8 DEPS.
Rolling v8/tools/clang to f9d7a272792022ffdfc9bd2cd0c901b824baf029

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

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

Cr-Commit-Position: refs/heads/master@{#35317}
2016-04-07 03:20:19 +00:00
jyan
41a9298524 S390: [generators] Decouple generator resume from fullcodegen.
Port 974721c661

Original commit message:
    Introduce a ResumeGeneratorTrampoline, which does the actual stack state
    reconstruction (currently always restores a fullcodegen frame), and
    introduce appropriate TurboFan builtins for %GeneratorPrototype%.next,
    %GeneratorPrototype%.return and %GeneratorPrototype%.throw based on
    this native builtin.

    Also unify the flooding in case of step-in to always work based on
    JSFunction and remove the special casing for JSGeneratorObject.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=chromium:513471
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35316}
2016-04-06 22:12:24 +00:00
hpayer
d0151bfb13 [heap] Don't use black pages for map, code and, lo space. Instead color objects black.
This reduced fragmentation in spaces where black pages are not a requirement. The only spaces where we need black pages is old space, because of allocation folding and fast inline allocation in generated code.

BUG=chromium:599174
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35315}
2016-04-06 21:53:31 +00:00
mbrandy
1e001e71e8 PPC: [generators] Decouple generator resume from fullcodegen.
Port 974721c661

Original commit message:
    Introduce a ResumeGeneratorTrampoline, which does the actual stack state
    reconstruction (currently always restores a fullcodegen frame), and
    introduce appropriate TurboFan builtins for %GeneratorPrototype%.next,
    %GeneratorPrototype%.return and %GeneratorPrototype%.throw based on
    this native builtin.

    Also unify the flooding in case of step-in to always work based on
    JSFunction and remove the special casing for JSGeneratorObject.

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

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

Cr-Commit-Position: refs/heads/master@{#35314}
2016-04-06 20:49:31 +00:00
mstarzinger
55515c998a [compiler] Remove obsolete GetUnoptimizedCodeCommon.
This removes an unnecessary abstraction from the implementation of the
compilation pipeline that is no longer needed by now.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35313}
2016-04-06 19:20:51 +00:00
mstarzinger
56c7d4b4f9 [compiler] Remove CompilationInfo::opt_count field.
This field duplicates information from the SharedFunctionInfo. Now that
backends are guaranteed to have a SharedFunctionInfo around, we drop it.

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35312}
2016-04-06 19:16:57 +00:00
jyan
b6d446635a S390: Fix incorrect V8_HOST_ARCH_S390X to V8_TARGET_ARCH_S390X
V8_HOST_ARCH_S390X doesn't exist but is incorrectly used. Therefore, preserved floating point registers are not being correctly saved/restored in JSEntryStub.

R=joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35311}
2016-04-06 19:05:40 +00:00
bryleun
960e25ea2c S390: Overflow check assert expanded to include kS390_Add/kS390_Sub
Debug asserts in code-generator-s390.cc are in place to ensure that overflow is only set when dealing with a sub or add opcode. However, the check only looked for kS390_Add/SubWithOverflow32, not kS390_Add/Sub which also sets overflow. This CL adds the second case to this assert check.

R=michael_dawson@ca.ibm.com,jyan@ca.ibm.com,mtbrandyberry@ca.ibm.com,joransiu@ca.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35310}
2016-04-06 18:50:50 +00:00
balazs.kilvady
7df3477a16 MIPS: [turbofan] use Lsa/Dlsa in some Multiplication cases.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35309}
2016-04-06 16:31:59 +00:00
cbruni
ceb14f8c31 [runtime] reduce runtime function and builtins overhead
All the counters, trace events and runtime call stats roughly create a 30%
overhead when calling into the runtime. This CL factors out the counters into
separate non-inlined functions. This way we can reduce the overhead to a
minimum and still have some useful stats without a compile-time flag.

BUG=chromium:596055
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35308}
2016-04-06 15:33:06 +00:00
marija.antic
4b86e6e321 MIPS: [wasm] Lowering of Int64Shl, Int64Shr, Int64Sar, Int64Add and Int64Sub.
Implementation of turbofan operators Word32PairShl, Word32PairShr,
Word32PairSar, Int32AddPair and Int32SubPair for MIPS.

Port of:
https://codereview.chromium.org/1765973002/
https://codereview.chromium.org/1778893004/
https://codereview.chromium.org/1778493004/
https://codereview.chromium.org/1778893005/
https://codereview.chromium.org/1842013002/

Added tests for Word32PairShr and Word32PairSar in test-run-machops.cc.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35307}
2016-04-06 14:45:30 +00:00
verwaest
6ac509de6e Delay copying abstract code to avoid failing in the heap verifier
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35306}
2016-04-06 14:34:14 +00:00
mattloring
3184aff964 Eliminate zero count allocations from profile
If no objects allocated at a location are live when a profile is
collected we report a zero count sample. This is confusing to those
looking at the profiles and will leak memory.

We now delete allocations once the number of sampled live objects for
that location reaches zero.

R=ofrobots@google.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35305}
2016-04-06 14:23:02 +00:00
machenbach
69bad719fc [CQ] Add next-gen win-nosnap-shared trybot as experiment
BUG=535160
TBR=sergiyb@chromium.org, kjellander@chromium.org
NOTRY=true
NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#35304}
2016-04-06 13:58:56 +00:00
cbruni
b8cfe6853d [elements] Fix merge conflict/resolution.
BUG=

NOTRY=true
NOPRESUBMIT=true
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#35303}
2016-04-06 13:53:18 +00:00
cbruni
ca5b896fab [elements] cleaning up string wrapper elements kind and adding tests
drive-by-fix: unify template parameters

BUG=chromium:586068
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35302}
2016-04-06 13:38:34 +00:00
verwaest
911a5768dc Simplify IC interfaces
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35301}
2016-04-06 13:38:33 +00:00
cbruni
604f5be5f7 [elements] add fast-path for slice with FastSloppyArguments
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35300}
2016-04-06 13:30:08 +00:00
verwaest
a6882e8262 Keyed IC cleanup: we always return Handle<Code>(), so just return void instead.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35299}
2016-04-06 13:28:10 +00:00
ssanfilippo
cf8de862ab Fix annotated disassembly in ll_prof.py
An overzealous removal in
https://crrev.com/9e39a9fff1c2966a3f650a4c31dbbe533886d614
caused the disassembly not to be annotated with ticks, even when
requested.

LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35298}
2016-04-06 12:38:44 +00:00
verwaest
787516891f Cleanup IC-related code
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35297}
2016-04-06 12:07:46 +00:00
hpayer
d16c3825fb [heap] Old generation limit is based on capacity.
BUG=chromium:600258
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35296}
2016-04-06 11:53:10 +00:00
bmeurer
318d9f52fd [test] Fix windows nosnap test expectations.
Now that we pass all these tests, we need to update the test
expectations.

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35295}
2016-04-06 11:40:17 +00:00
mlippautz
6a5e24b29b Move MemoryAllocator and CodeRange into Heap
- MemoryAllocator is now part of Heap
- CodeRange is now part of MemoryAllocator

BUG=chromium:581076
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35294}
2016-04-06 11:40:16 +00:00
clemensh
0845448672 Prepare StackFrame hierarchy & iterators for WASM
This particularly changes the StackTraceFrameIterator such that is not
only returs JavaScriptFrames, but also WasmFrames. Because of that,
some methods (Summarize, function, receiver) were pulled up to the
StandardFrame, with specializations in JavaScriptFrame and WasmFrame.

R=jfb@chromium.org, titzer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35293}
2016-04-06 11:38:20 +00:00
jacob.bramley
141324cfdc [arm] Implement Float(32|64)(Min|Max) using vsel.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35292}
2016-04-06 10:17:57 +00:00
verwaest
d2eb555ee1 Use a dictionary-mode code cache on the map rather than a dual system.
The previous code cache system required stubs to be marked with a StubType, causing them to be inserted either into a fixed array or into a dictionary-mode code cache. This could cause names to be in both cases, and lookup would just find the "fast" one first. Given that we clear out the caches on each GC, the memory overhead shouldn't be too bad. Additionally, the dictionary itself should just stay linear for small arrays; that's faster anyway.

This CL additionally deletes some dead IC code.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35291}
2016-04-06 10:06:30 +00:00
clemensh
ca9f2c8034 Add tags file to gitignore
R=ahaas@chromium.org, titzer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35290}
2016-04-06 09:59:02 +00:00
ahaas
a7d3e24fd6 [wasm] Refactoring of wasm-external-refs.
1) I moved the implementations of the wrapper functions into a new cc
file so that I can use these wrapper functions in tests.

2) I made a generic test for all tests in
test-run-calls-to-external-references.cc. In the new test we only
compare the result of a function call through an external reference with
the result of a direct function call. This is sufficient because we only
want to test function calls through external references work here.
The implementation of these functions are tested somewhere else.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35289}
2016-04-06 09:26:05 +00:00
hpayer
0eb53167f4 [heap] Respect idle deadline in AdvanceIncrementalMarking more carefully.
Review URL: https://codereview.chromium.org/1855943002

Cr-Commit-Position: refs/heads/master@{#35288}
2016-04-06 09:07:35 +00:00
epertoso
6c2bb8389d [stubs] Introduce MultiplyStub.
Adds a MultiplyStub for the multiplication operator and hooks it with TurboFan and Ignition.

Currently, the SMI times SMI case is handled by converting both the operands to double precision floating points, we may consider adding a fast path later.

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

Cr-Commit-Position: refs/heads/master@{#35287}
2016-04-06 09:05:39 +00:00
titzer
e00a0c621c [wasm] Local decl parsing tweak.
R=ahaas@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35286}
2016-04-06 08:57:50 +00:00
clemensh
9a65c0ef03 Refactoring: Avoid redundant checks in SingletonFor
SingletonFor(type, state) returns NULL and does nothing whenever SingletonFor(type) also return NULL. So checking this beforehand is redundant.

This is my first CL, so I also use it to get familiar with the system.

R=titzer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35285}
2016-04-06 08:57:49 +00:00
mlippautz
260df721d4 [heap] Unify LargePage, NewSpacePage, and Page allocation
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35284}
2016-04-06 08:43:13 +00:00
bmeurer
974721c661 [generators] Decouple generator resume from fullcodegen.
Introduce a ResumeGeneratorTrampoline, which does the actual stack state
reconstruction (currently always restores a fullcodegen frame), and
introduce appropriate TurboFan builtins for %GeneratorPrototype%.next,
%GeneratorPrototype%.return and %GeneratorPrototype%.throw based on
this native builtin.

Also unify the flooding in case of step-in to always work based on
JSFunction and remove the special casing for JSGeneratorObject.

R=mstarzinger@chromium.org, neis@chromium.org
TBR=rossberg@chromium.org
BUG=chromium:513471
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35283}
2016-04-06 08:39:24 +00:00
ishell
03953f52bd Convert receiver when calling an Api accessor.
BUG=chromium:590071
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35282}
2016-04-06 08:02:24 +00:00
oth
7f3442133e [interpreter] Add accumulator use description to bytecodes.
Anotates bytecodes with a description of how each uses the accumulator.

Validates annotations and uses of accumulator when generating bytecode
handlers.

Only prints the accumulator during tracing where used.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35281}
2016-04-06 07:57:56 +00:00
v8-autoroll
10027372bf Update V8 DEPS.
Rolling v8/third_party/icu to c291cde264469b20ca969ce8832088acb21e0c48

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

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

Cr-Commit-Position: refs/heads/master@{#35280}
2016-04-06 03:26:43 +00:00
adamk
9bfad834d3 Ship --harmony-regexp-exec
The Chrome Extensions code that was broken by this change the first time
it landed has been amended to deal appropriately with the ES2015
semantics in https://codereview.chromium.org/1864733002/.

BUG=v8:4602
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#35279}
2016-04-05 22:50:42 +00:00
hablich
dc39c194d4 [Ignition] Skip timing out WASM tests
BUG=v8:4680
LOG=N
TBR=mstarzinger@chromium.org,rmcilroy@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35278}
2016-04-05 21:56:15 +00:00
caitpotter88
f60048c556 [destructuring] don't attempt to visit contents of FunctionLiterals
The parser eagerly rewrites destructuring assignments occuring
in formal parameter initializers, because not doing so would
cause the BindingPattern rewriting to be confused and do the
wrong thing.

This change prevents this rewriting from descending into the
bodies of lazily parsed functions.

In general, it's a mistake to descend into the bodies of function
literals anyways, since they are rewritten separately on their
own time, so there is no distinction made between lazily
"throw away" eagerly parsed functions in the temporary parser
arena, or "real" eagerly parsed functions that will be compiled.

BUG=chromium:594084, v8:811
LOG=N
R=adamk@chromium.org, littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35277}
2016-04-05 18:43:17 +00:00
bjaideep
6b1f75343c PPC: Remove unnecessay file from v8.gyp
Since interface-descriptors-ppc.h is removed, so remove it from v8.gyp as well.

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

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

Cr-Commit-Position: refs/heads/master@{#35276}
2016-04-05 18:29:54 +00:00
kozyatinskiy
725672512a [V8] Removed debugger V8::PromiseEvent
We decided to remove related devtools experiment.

BUG=chromium:526811
LOG=Y
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35275}
2016-04-05 18:13:02 +00:00
titzer
dc226e6160 [wasm] Factor trap codes out of wasm-compiler.cc
R=ahaas@chromium.org,bradnelson@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35274}
2016-04-05 17:29:34 +00:00
titzer
77a8c2ea86 [asm.js] Fix typing bug for non-literals in heap access.
R=bradnelson@chromium.org
BUG=chromium:599825
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#35273}
2016-04-05 17:24:03 +00:00
titzer
6dda75f23b [wasm] Refactor decoding of local declarations and make more robust.
R=ahaas@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35272}
2016-04-05 17:16:30 +00:00
littledan
7a38462e8b Ensure CreateDataProperty works correctly on TypedArrays
Previously, CreateDataProperty would fail a DCHECK when used to create
an integer indexed property on a TypedArray. This patch makes it throw
a TypeError instead. The issue came up when Array.prototype.concat
was repaired to use CreateDataProperty rather than SetElement; concat
can be tricked into making a new TypedArray if it is given an Array
whose prototype is a TypedArray. This patch prevents the issue.

R=adamk
LOG=Y
BUG=chromium:596394

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

Cr-Commit-Position: refs/heads/master@{#35271}
2016-04-05 16:56:12 +00:00
yangguo
7936f40562 [d8] reset global handle on exit.
R=neis@chromium.org
BUG=v8:4887
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35270}
2016-04-05 16:23:13 +00:00
cbruni
823224f3ee [elements] Fix length bounds precheck for Array.prototype.concat
BUG=chromium:599414
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35269}
2016-04-05 15:35:27 +00:00