Commit Graph

30044 Commits

Author SHA1 Message Date
ahaas
f7aa8cc70e [x64] Load int32 constants with movl instead of movq to avoid sign extension.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35352}
2016-04-08 11:46:44 +00:00
hablich
d1ec440f5d Revert of [builtins] Migrate String.prototype.charCodeAt and String.prototype.charAt to TurboFan. (patchset #2 id:20001 of https://codereview.chromium.org/1868963002/ )
Reason for revert:
Needed to revert https://codereview.chromium.org/1838283003/

Original issue's description:
> [builtins] Migrate String.prototype.charCodeAt and String.prototype.charAt to TurboFan.
>
> Make these builtins fast by default w/o relying on the
> %_StringCharCodeAt and %_StringCharAt intrinsics, which we cannot deal
> with well in TurboFan (and ignition).
>
> R=epertoso@chromium.org
>
> Committed: https://crrev.com/43d3331d87f68ea7efa1b58f559f33f60e5dacfb
> Cr-Commit-Position: refs/heads/master@{#35350}

TBR=epertoso@chromium.org,bmeurer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35351}
2016-04-08 11:26:04 +00:00
bmeurer
43d3331d87 [builtins] Migrate String.prototype.charCodeAt and String.prototype.charAt to TurboFan.
Make these builtins fast by default w/o relying on the
%_StringCharCodeAt and %_StringCharAt intrinsics, which we cannot deal
with well in TurboFan (and ignition).

R=epertoso@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35350}
2016-04-08 10:21:37 +00:00
balazs.kilvady
65eb0f6b33 MIPS: [turbofan] Add AddInt + WordShl tests to machops cctest file.
AddInt + WordShl cases can be optimized on MIPS and this CL contains
tests for those special cases. These test also must be passed on other
architectures.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35349}
2016-04-08 09:57:01 +00:00
mstarzinger
03c169f957 [compiler] Deprecate CompilationInfo::has_context predicate.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35348}
2016-04-08 08:30:30 +00:00
jarin
03975befe3 [turbofan] Remove some clever-but-wrong bits from select lowering.
BUG=chromium:600593
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35347}
2016-04-08 08:26:13 +00:00
mvstanton
d72112161d Quit creating array literal boilerplates from Crankshaft.
It's such a corner case.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35346}
2016-04-08 08:24:05 +00:00
cbruni
ad1784e5c6 [elements] revert overzealous optimzation for fast sloppy arguments delete
BUG=chromium:601390
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35345}
2016-04-08 08:02:47 +00:00
yangguo
e39ba01420 [regexp] extend \p syntax to binary and enumerated properties.
Also make the syntax a bit less complicated and speculative.

R=littledan@chromium.org
BUG=v8:4743
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35344}
2016-04-08 05:39:43 +00:00
v8-autoroll
84ed760915 Update V8 DEPS.
Rolling v8/tools/clang to 88d00d95febafac2dbe501850d0f53e95e4db291

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

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

Cr-Commit-Position: refs/heads/master@{#35343}
2016-04-08 03:25:59 +00:00
adamk
a0a8ecd078 Remove runtime flags for sloppy mode block scoping features
These were all on by default in M49 without complaint.

R=littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35342}
2016-04-08 00:30:20 +00:00
slan
920370d1a9 Use GCC for snapshot_toolchain when is_clang=false.
Currently, snapshot_toolchain is hardcoded to use a clang host
toolchain. Use a GCC toolchain if is_clang is false.

Revert this when this is root-caused (see crbug.com/601486)

LOG=Y
BUG=601486

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

Cr-Commit-Position: refs/heads/master@{#35341}
2016-04-07 16:23:10 +00:00
jyan
224210a594 S390: Bugfix: assert in lithium compile for LMaybeGrowElements
Port ce1fe78d7e

R=mvstanton@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=chromium:585041
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35340}
2016-04-07 16:23:09 +00:00
mstarzinger
460bff5fb6 [compiler] Make feedback vector cope with flag changes.
This fixes corner cases where the layout of feedback vectors baked into
the snapshot is different from the expected layout, depending on some
runtime flags. We make sure the feedback vector is regenereated for
functions that are not compiled. Flag changes of this kind are only
allowed when code is not serialized.

An alternative solution would be to not serialize the feedback vector
for such cases in the first place. That solution however would have a
higher overhead, as it would required the serializer to be able to
recognize feedback vectors while generating a snapshot.

R=mvstanton@chromium.org
TEST=mjsunit/regress/regress-crbug-600995
BUG=chromium:600995
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35339}
2016-04-07 15:35:03 +00:00
cbruni
9285ac92ac Improve elements validation and object printing
Make sure we check that packed elements do not containt TheHole.
%DebugPrint:
- Only print the transition arrays for maps
- Print more detailed instance types directly for objects
- directly print the array length for JS_ARRAY objects

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35338}
2016-04-07 15:29:15 +00:00
mbrandy
75b03d0ce7 PPC: Bugfix: assert in lithium compile for LMaybeGrowElements
Port ce1fe78d7e

R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=chromium:585041
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35337}
2016-04-07 15:14:12 +00:00
hpayer
5704924275 [heap] Make sure that we transition to MARKING when we are finalize SWEEPING.
BUG=chromium:601204
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35336}
2016-04-07 15:12:14 +00:00
verwaest
40290edf11 Lazily compute boundfunction .name and .length if possible
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35335}
2016-04-07 13:38:02 +00:00
mike
9acbca1845 [es6] Fix bug in pattern re-writing
As originally implemented, a SingleNameBinding within a BindingPattern
was incorrectly interpreted as an assignment if an initializer was
present and that initializer was itself an AssignmentExpresion.
For example:

    let x;
    { let [x = y = 1] = []; }
    print(x); // expected: undefined, actual: 1

Extend the heuristic that detects the "context" of a destructuring
pattern to account for AssignmentExpressions within SingleNameBindings.

BUG=v8:4891
LOG=N
R=adamk@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35334}
2016-04-07 13:26:54 +00:00
mlippautz
6e281f1c0a [heap] Fix SemiSpace::Commit/GrowTo to deal with OOM
R=hpayer@chromium.org
BUG=chromium:601041, chromium:601417, chromium:581412
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35333}
2016-04-07 13:10:05 +00:00
cbruni
9478356ed3 Fix representation issue in FastArrayPushStub
Pushing undefined onto a FAST_DOUBLE_ARRAY does not enforce the right representation checks.

BUG=chromuim:599089
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35332}
2016-04-07 12:46:08 +00:00
mvstanton
ce1fe78d7e Bugfix: assert in lithium compile for LMaybeGrowElements
BUG=chromium:585041
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35331}
2016-04-07 11:41:39 +00:00
verwaest
4c2b04542f Migrate FastCloneShallowObjectStub to TurboFan
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35330}
2016-04-07 09:54:14 +00:00
mstarzinger
105777a036 [turbofan] Deprecate CompilationInfo::has_scope predicate.
Now that we no longer compile stubs from JavaScript source, but have
other means of generating stubs using our optimizing compilers, we can
assume that scope analysis has happened whenever prologues are being
assembled.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35329}
2016-04-07 09:54:13 +00:00
ssanfilippo
2f8de2e80a Fix Gyp rule that broke node.js build after snapshot log removal.
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35328}
2016-04-07 09:13:08 +00:00
mlippautz
165186f272 [heap] Fix Heap::EnsureFillerObjectAtTop for non-contiguous new space
R=hpayer@chromium.org
BUG=chromium:601014, chromium:601329, chromium:581412
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35327}
2016-04-07 08:54:17 +00:00
mstarzinger
51d3932580 [turbofan] Deprecate CompilationInfo::has_literal predicate.
Now that the SharedFunctionInfo is available to compilers all of the
time, we no longer need to rely on the literal for source printing.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35326}
2016-04-07 08:44:45 +00:00
machenbach
2e9fc9373b [test] Skip flaky test on linux.
BUG=v8:4894
NOTRY=true
LOG=n
TBR=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35325}
2016-04-07 08:42:44 +00:00
machenbach
aa81cc689d S390: Extend test timeout.
TBR=jyan@ca.ibm.com
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35324}
2016-04-07 08:31:18 +00:00
mstarzinger
099189f400 [compiler] Simplify GetLazyCode for asm functions.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35323}
2016-04-07 08:21:49 +00:00
clemensh
b4edd2f658 Allow to pass a user message to assert functions
Nothing too important, but it helps localizing the cause of an error
much faster.
By the way, I also changed the output for assertThrows and
assertDoesNotThrow a bit.
All new arguments are optional, so everything is backwards compatible.

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

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

Cr-Commit-Position: refs/heads/master@{#35322}
2016-04-07 08:16:04 +00:00
machenbach
ecb458440c [test] Skip flaky test on windows.
Crashes flakily with stressopt/alwaysopt.

BUG=v8:4893
LOG=n
TBR=yangguo@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35321}
2016-04-07 08:14:02 +00:00
ivica.bogosavljevic
d4403b172f MIPS: Add tests for AddBranchOvf and SubBranchOvf macro instructions.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35320}
2016-04-07 07:16:29 +00:00
hablich
d8bc471b4a Revert of [heap] Respect idle deadline in AdvanceIncrementalMarking more carefully. (patchset #4 id:60001 of https://codereview.chromium.org/1855943002/ )
Reason for revert:
Reverting because of https://bugs.chromium.org/p/chromium/issues/detail?id=601204

Original issue's description:
> [heap] Respect idle deadline in AdvanceIncrementalMarking more carefully.
>
> Committed: https://crrev.com/0eb53167f492a44d26b68c2197e37452f70c3a4f
> Cr-Commit-Position: refs/heads/master@{#35288}

TBR=ulan@chromium.org,hpayer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35319}
2016-04-07 07:14:30 +00:00
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