Commit Graph

36431 Commits

Author SHA1 Message Date
danno
6236060c9c [stubs] Port LoadFieldStub to TF
LoadFieldStub is the last Crankshaft/Hydrogen stub that stands in the way
of being able to run --ignition-staging --turbo without any Crankshaft support,
even for ICs/stubs.

Review-Url: https://codereview.chromium.org/2595343002
Cr-Commit-Position: refs/heads/master@{#41939}
2016-12-23 12:01:26 +00:00
ivica.bogosavljevic
c42bbec953 MIPS: Reland of Fix bad RegisterConfiguration usage in InstructionSequence unit tests
Reland 0cf5623220

The original patch got reverted because testing RegisterConfiguration was
overwritten by turbofan RegisterConfiguration. This caused some test cases not being
properly tested. The new patch uses correct RegisterConfiguration.

Original commit message:
Test InstructionSequenceTest has been initialized with a testing RegisterConfiguration
instance defined in instruction-sequence-unittest.h, whereas class ExplicitOperand which
is being tested used RegisterConfiguration from instruction.cc. In case these two
instances are different, the tests would fail. The issue is fixed by using the same
instance of RegisterConfiguration both for test code and code under test.

Additionally, the tests in register-allocator-unittest.cc use hardcoded values
for register and begin failing is the hardcoded register is not available for
allocation. Fix by forcing the use of allocatable registers only.

TEST=unittests.MoveOptimizerTest.RemovesRedundantExplicit,unittests.RegisterAllocatorTest.SpillPhi
BUG=

Review-Url: https://codereview.chromium.org/2595293002
Cr-Commit-Position: refs/heads/master@{#41938}
2016-12-23 10:51:08 +00:00
kozyatinskiy
b571c6d1ce [inspector] speculative avoid using debugger context as current in blink
Now we run nested message loop with debugger context as current one.

BUG=chromium:676749
R=yangguo@chromium.org,dgozman@chromium.org

Review-Url: https://codereview.chromium.org/2604553002
Cr-Commit-Position: refs/heads/master@{#41937}
2016-12-23 10:06:24 +00:00
mlippautz
833d2c4b05 Revert of Reland "[heap] Ensure progress when incrementally marking wrappers" (patchset #8 id:140001 of https://codereview.chromium.org/2591383004/ )
Reason for revert:
Breaks webkit-unit-tests. Investigating..

Original issue's description:
> Reland "[heap] Ensure progress when incrementally marking wrappers"
>
> 1) Alternate between processing v8 and wrappers
> 2) Once v8 is empty, try 3 rounds of finding the fixpoint between v8 and wrappers
> 3) After that, finalize once v8 marking deque is empty again
>
> BUG=
>
> Review-Url: https://codereview.chromium.org/2591383004
> Cr-Commit-Position: refs/heads/master@{#41932}
> Committed: 61a55548c5

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

Review-Url: https://codereview.chromium.org/2592393003
Cr-Commit-Position: refs/heads/master@{#41936}
2016-12-23 09:47:18 +00:00
yangguo
f85678159d Revert of [debugger] deprecate v8::Debug:GetDebugContext. (patchset #2 id:20001 of https://codereview.chromium.org/2589203002/ )
Reason for revert:
crbug/676749

Original issue's description:
> [debugger] deprecate v8::Debug:GetDebugContext.
>
> R=jgruber@chromium.org
> BUG=v8:5530
>
> Review-Url: https://codereview.chromium.org/2589203002
> Cr-Commit-Position: refs/heads/master@{#41911}
> Committed: 381082168d

TBR=jgruber@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=v8:5530, chromium:676749

Review-Url: https://codereview.chromium.org/2595413003
Cr-Commit-Position: refs/heads/master@{#41935}
2016-12-23 09:15:15 +00:00
v8-autoroll
6983fe497c Update V8 DEPS.
Rolling v8/build: 5c10e06..69a30f6

Rolling v8/third_party/catapult: 489a5bc..810f05a

Rolling v8/tools/clang: f6f94f4..68d808f

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

Review-Url: https://codereview.chromium.org/2594203005
Cr-Commit-Position: refs/heads/master@{#41934}
2016-12-23 04:24:49 +00:00
joransiu
0ddb3645cc S390: Optimize allocate sequence
Improve the S390 allocate sequence by:
- Keeping allocation limit in memory, and leverage compare RX-instr.
- Prefetching subsequent cache lines from allocation top.
- Optimizing object tagging with LA
- Optimizing increment for Fast-Allocate with ASI/AGSI

R=jyan@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2601563002
Cr-Commit-Position: refs/heads/master@{#41933}
2016-12-22 20:59:33 +00:00
mlippautz
61a55548c5 Reland "[heap] Ensure progress when incrementally marking wrappers"
1) Alternate between processing v8 and wrappers
2) Once v8 is empty, try 3 rounds of finding the fixpoint between v8 and wrappers
3) After that, finalize once v8 marking deque is empty again

BUG=

Review-Url: https://codereview.chromium.org/2591383004
Cr-Commit-Position: refs/heads/master@{#41932}
2016-12-22 20:51:47 +00:00
wez
b344f930c8 Suppress symbol import warning from linker when building cctest.exe
Ignoring this linker warning will enable Chromium builds to start
treating all linker warnings as errors in Windows builds.

BUG=676417, 659007

Review-Url: https://codereview.chromium.org/2594013004
Cr-Commit-Position: refs/heads/master@{#41931}
2016-12-22 19:33:00 +00:00
gsathya
d5b62384c3 [promises] Check if receiver is smi before loading map
BUG=v8:5343

Review-Url: https://codereview.chromium.org/2595423002
Cr-Commit-Position: refs/heads/master@{#41930}
2016-12-22 19:27:06 +00:00
adamk
57e8acbbb3 Align __lookupGetter__/__lookupSetter__ behavior with the spec
These methods now return undefined upon finding a data property in the
prototype chain which shadows an accessor property, and when hitting
a Proxy, call the appropriate proxy traps.

R=cbruni@chromium.org, littledan@chromium.org
BUG=v8:5130

Review-Url: https://codereview.chromium.org/2592013003
Cr-Commit-Position: refs/heads/master@{#41929}
2016-12-22 19:24:47 +00:00
adamk
207214b604 Revert of Turn on icu_case_mapping by default (patchset #4 id:60001 of https://codereview.chromium.org/2588963002/ )
Reason for revert:
Causes crashes on Canary: crbug.com/676643

Original issue's description:
> Turn on icu_case_mapping by default
>
> Update string-capitalize expected result because now it
> passes all the tests in the file.
> Mark fast/js/string-capitalization as failing with no_i18n.
>
> Relanding after revert because the failure was taken care of
> by Adam's CL at https://codereview.chromium.org/2597543002 .
>
>
> BUG=v8:4477, v8:4476
> TEST=test262/{built-ins,intl402}/Strings/*, webkit/fast/js/*,
>      mjsunit/string-case, intl/general/case*
>
> Cr-Original-Commit-Position: refs/heads/master@{#41834}
> Committed: 7c79e23c34
> Review-Url: https://codereview.chromium.org/2588963002
> Cr-Commit-Position: refs/heads/master@{#41883}
> Committed: a42c8c67de

TBR=littledan@chromium.org,yangguo@chromium.org,jshin@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=v8:4477, v8:4476, chromium:676643

Review-Url: https://codereview.chromium.org/2601553002
Cr-Commit-Position: refs/heads/master@{#41928}
2016-12-22 18:29:15 +00:00
bmeurer
b0ff71dbe8 [turbofan] Continue collecting CallIC feedback in optimized code.
Similar to Crankshaft use the CallIC to continue gathering feedback for
uninitialized call sites instead of inserting a soft deopt.

R=mvstanton@chromium.org

Review-Url: https://codereview.chromium.org/2597173002
Cr-Commit-Position: refs/heads/master@{#41927}
2016-12-22 18:27:45 +00:00
ulan
da328981ff [heap] Move GC tracer scope for incremental marking step one level up.
BUG=

Review-Url: https://codereview.chromium.org/2600513002
Cr-Commit-Position: refs/heads/master@{#41926}
2016-12-22 16:14:09 +00:00
bbudge
0f12793f69 [WASM] Skip failing F32x4 tests on ARM.
LOG=N
BUG=v8:4124

Review-Url: https://codereview.chromium.org/2589283002
Cr-Commit-Position: refs/heads/master@{#41925}
2016-12-22 16:05:05 +00:00
mlippautz
73036fb691 Revert of [heap] Ensure progress when incrementally marking wrappers (patchset #3 id:60001 of https://codereview.chromium.org/2592403002/ )
Reason for revert:
This won't work because the finalization still checks whether both marking deques are empty, also calling into blink. So we never proceed there.

Original issue's description:
> [heap] Ensure progress when incrementally marking wrappers
>
> The problem here is estimating the marking step size for wrapper tracing. If the
> steps are too small, we cannot keep up with the mutator creating new wrappers.
> The result is an endless stream of incremental marking steps, alternating v8 and
> wrappers tracing, without ever finalizing in a GC.
>
> The mitigation here is to abort finding the fix point after 10 incremental
> iterations.
>
> A proper solution would track newly created wrappers on the blink side during
> wrapper tracing. Will give this more thought after the holidays.
>
> BUG=chromium:668164, chromium:468240
>
> Review-Url: https://codereview.chromium.org/2592403002
> Cr-Commit-Position: refs/heads/master@{#41923}
> Committed: a47417b893

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

Review-Url: https://codereview.chromium.org/2602433002
Cr-Commit-Position: refs/heads/master@{#41924}
2016-12-22 15:07:36 +00:00
mlippautz
a47417b893 [heap] Ensure progress when incrementally marking wrappers
The problem here is estimating the marking step size for wrapper tracing. If the
steps are too small, we cannot keep up with the mutator creating new wrappers.
The result is an endless stream of incremental marking steps, alternating v8 and
wrappers tracing, without ever finalizing in a GC.

The mitigation here is to abort finding the fix point after 10 incremental
iterations.

A proper solution would track newly created wrappers on the blink side during
wrapper tracing. Will give this more thought after the holidays.

BUG=chromium:668164, chromium:468240

Review-Url: https://codereview.chromium.org/2592403002
Cr-Commit-Position: refs/heads/master@{#41923}
2016-12-22 14:50:21 +00:00
tebbi
8435cc8526 [turbofan] fix another divergence in escape analysis
This divergence bug is very similar to the one fixed in https://codereview.chromium.org/2522253002/, this time it is an oscillation between a cleared field and a new phi node. The page http://www.sears.com/clothing-shoes-jewelry-clothing-men-s-clothing-men-s-jeans/b-1325287370?Brand=LEE&filterList=Brand&sortOption=UNITS_HIGH_TO_LOW allows for a reliable reproduction.

This fix makes sure that once a field that generated a phi gets cleared, it always stays cleared.

BUG=chromium:670202

R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2599793002
Cr-Commit-Position: refs/heads/master@{#41922}
2016-12-22 14:21:24 +00:00
cbruni
f73973092c [ic] Always use generic ICs for growing element stores on arguments
In certain corner-cases we would grow a FAST_ELEMENTS packed backing store of a
JS_ARGUMENTS_TYPE object without converting to holey elements kinds. As a side
effect you could then read out the_hole.

BUG=v8:5772

Review-Url: https://codereview.chromium.org/2597013004
Cr-Commit-Position: refs/heads/master@{#41921}
2016-12-22 14:10:51 +00:00
cbruni
b9b6e0b06d [tools] Use better category names in callstats.html
This CL changes the displayed names of "Callbacks" and "Runtime" to "Blink C++"
and "V8 C++" respectively.

NOTRY=true

Review-Url: https://codereview.chromium.org/2598993002
Cr-Commit-Position: refs/heads/master@{#41920}
2016-12-22 14:08:54 +00:00
jgruber
132b7bf9e0 [stubs] Remove %_NewObject intrinsic
The last remaining JS user of this in promise.js has recently been moved
to TF. The underlying FastObjectStub is still in use.

BUG=

Review-Url: https://codereview.chromium.org/2598973002
Cr-Commit-Position: refs/heads/master@{#41919}
2016-12-22 12:37:19 +00:00
tebbi
8dad4feec9 Revert of [turbofan] reenable escape analysis to further investigate crashes (patchset #1 id:1 of https://codereview.chromium.org/2589163002/ )
Reason for revert:
still crashing with the known issues

Original issue's description:
> [turbofan] reenable escape analysis to further investigate crashes
>
> R=jarin@chromium.org
>
> BUG=chromium:669242
>
> Review-Url: https://codereview.chromium.org/2589163002
> Cr-Commit-Position: refs/heads/master@{#41857}
> Committed: fd4812323f

TBR=jarin@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:669242

Review-Url: https://codereview.chromium.org/2601463002
Cr-Commit-Position: refs/heads/master@{#41918}
2016-12-22 10:56:39 +00:00
hablich
aa8a208a47 Revert of [TypeFeedbackVector] Root literal arrays in function literals slots (patchset #11 id:370001 of https://codereview.chromium.org/2504153002/ )
Reason for revert:
Speculative revert because of blocked roll: https://codereview.chromium.org/2596013002/

Original issue's description:
> [TypeFeedbackVector] Root literal arrays in function literals slots
>
> Literal arrays and feedback vectors for a function can be garbage
> collected if we don't have a rooted closure for the function, which
> happens often. It's expensive to come back from this (recreating
> boilerplates and gathering feedback again), and the cost is
> disproportionate if the function was inlined into optimized code.
>
> To guard against losing these arrays when we need them, we'll now
> create literal arrays when creating the feedback vector for the outer
> closure, and root them strongly in that vector.
>
> BUG=v8:5456
>
> Review-Url: https://codereview.chromium.org/2504153002
> Cr-Commit-Position: refs/heads/master@{#41893}
> Committed: 93df094081

TBR=bmeurer@chromium.org,mlippautz@chromium.org,mvstanton@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5456

Review-Url: https://codereview.chromium.org/2597163002
Cr-Commit-Position: refs/heads/master@{#41917}
2016-12-22 10:26:36 +00:00
dusan.simicic
cc77bd8234 MIPS: Fix improper use of odd FP reg on mips32r6
Odd numbered floating-point register shouldn't be used as compare register
on mips32r6 architecture. In case cpu switches to FRE mode, writes to odd
numbered single-precision fp register will update upper part of even
double-precision register, which will corrupt the even register.

BUG=

Review-Url: https://codereview.chromium.org/2591063003
Cr-Commit-Position: refs/heads/master@{#41916}
2016-12-22 10:06:18 +00:00
hablich
1e994192d6 Revert of [regexp] Remove IsRegExp intrinsic (patchset #1 id:1 of https://codereview.chromium.org/2591923003/ )
Reason for revert:
speculative revert: https://codereview.chromium.org/2596013002/

Original issue's description:
> [regexp] Remove IsRegExp intrinsic
>
> The two remaining uses of this intrinsic in debug.js and mirrors.js now
> simply rely on the runtime function.
>
> BUG=v8:5339
>
> Review-Url: https://codereview.chromium.org/2591923003
> Cr-Commit-Position: refs/heads/master@{#41892}
> Committed: c9cb94a06f

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

Review-Url: https://codereview.chromium.org/2592383002
Cr-Commit-Position: refs/heads/master@{#41915}
2016-12-22 09:39:37 +00:00
danno
21dfcf5dad [turbofan]: Better source position information
* Ensure that a source position is already specified in generated code before
  prologue is assembled.
* Ensure source position is set for instructions before their gaps are assembled
  (this fixes missing source position information at the beginning of deferred
  code).
* Don't output source position information for gap moves that are
  redundant. This led to extraneous, confusing source positions for constants
  that did not end up producing any code.
* Output source position information that is usable in turbolizer when --trace-turbo
  is specified.

LOG=N

Review-Url: https://codereview.chromium.org/2599433002
Cr-Commit-Position: refs/heads/master@{#41914}
2016-12-22 08:45:35 +00:00
bmeurer
89259657b9 [turbofan] Relax index type constraints for StringCharAt/StringCharCodeAt.
Also support inlining the builtins String.prototype.charCodeAt and
String.prototype.charAt if the index type is not statically known
to be in the Unsigned32 range, but in anything in Integral32 plus
minus zero and NaN.

R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2597913002
Cr-Commit-Position: refs/heads/master@{#41913}
2016-12-22 07:35:56 +00:00
bmeurer
86e2a19991 [turbofan] Lower StringCharCodeAt to a dedicated builtin.
Introduce a dedicated StringCharCodeAt builtin, that performs the core
logic of String.prototype.charCodeAt and lower the StringCharCodeAt
simplified operator to a call to this builtin rather than inlining the
full functionality into each and every TurboFan graph using it. This can
significantly reduce compile time in some cases (i.e. can easily shave
off over 50% of compile time overhead for small functions that call
String.prototype.charCodeAt).

Currently it returns the char code as TaggedSigned value, but
middle-term we should make it possible to return untagged values
from builtins.

R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2600443002
Cr-Commit-Position: refs/heads/master@{#41912}
2016-12-22 07:11:22 +00:00
yangguo
381082168d [debugger] deprecate v8::Debug:GetDebugContext.
R=jgruber@chromium.org
BUG=v8:5530

Review-Url: https://codereview.chromium.org/2589203002
Cr-Commit-Position: refs/heads/master@{#41911}
2016-12-22 07:04:01 +00:00
yangguo
546152e754 Fix DoubleToRadixCString wrt Number.MIN_VALUE.
R=bmeurer@chromium.org
BUG=v8:5767

Review-Url: https://codereview.chromium.org/2599693002
Cr-Commit-Position: refs/heads/master@{#41910}
2016-12-22 06:57:01 +00:00
bmeurer
05f5ebce2f [turbofan] Introduce a dedicated StringCharAt operator.
Previously String element access and String.prototype.charAt were
lowered to a subgraph StringFromCharCode(StringCharCodeAt(s, k)),
however that can be fairly expensive both runtime and compile time
wise. The dedicated StringCharAt operator is implemented via a call
to a builtin that does exactly this.

R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2599683002
Cr-Commit-Position: refs/heads/master@{#41909}
2016-12-22 06:49:07 +00:00
v8-autoroll
7430881471 Update V8 DEPS.
Rolling v8/build: 564d650..5c10e06

Rolling v8/third_party/catapult: f3dc14e..489a5bc

Rolling v8/tools/clang: 780832e..f6f94f4

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

Review-Url: https://codereview.chromium.org/2597893002
Cr-Commit-Position: refs/heads/master@{#41908}
2016-12-22 04:20:48 +00:00
eholk
5fa423d7c2 [wasm] sundry trap handler fixes
This CL includes several small bug fixes for trap handlers. Among the changes:

* Use the correct representation for ProtectedLoads, enabling protected loads of
  floating point types.

* Including the protected instruction list in what gets serialized for Code
  objects. This is needed to allow deserialization for Wasm modules to work.

* Get the context needed to through and exception from the Isolate rather than
  getting it as a parameter to the Protected instructions. Passing it in as an
  argument is problematic when code is compiled ahead of time, as the context
  may not be known yet. The new approach is similar to how it works for TrapIf
  and TrapUnless.

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5277

Review-Url: https://codereview.chromium.org/2591903002
Cr-Commit-Position: refs/heads/master@{#41907}
2016-12-22 00:31:59 +00:00
sampsong
c46f98bced S390 [Crankshaft]: Use LoadPositive for MathAbs
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com

BUG=

Review-Url: https://codereview.chromium.org/2591643005
Cr-Commit-Position: refs/heads/master@{#41906}
2016-12-22 00:29:30 +00:00
gsathya
c8ce0cf99e [promises] Set correct method on Promise.reject TypeError
R=adamk@chromium.org

Review-Url: https://codereview.chromium.org/2593243002
Cr-Commit-Position: refs/heads/master@{#41905}
2016-12-21 23:52:42 +00:00
gsathya
6f08e9af9e [CSA] Fix typo
TBR=ishell@chromium.org

Review-Url: https://codereview.chromium.org/2599523002
Cr-Commit-Position: refs/heads/master@{#41904}
2016-12-21 20:18:17 +00:00
danno
bad367fd9d [ic] Remove deprecated LoadConstantStub and other related dead code
Review-Url: https://codereview.chromium.org/2597693002
Cr-Commit-Position: refs/heads/master@{#41903}
2016-12-21 20:13:59 +00:00
gsathya
2041c50402 [promises] Move Promise.prototype.catch to TF
This patch also refactors most of PromiseThen into InternalPromiseThen to
be reused with PromiseCatch and also changes InternalResolvePromise to
return and not branch.

BUG=v8:5343

Review-Url: https://codereview.chromium.org/2596553002
Cr-Commit-Position: refs/heads/master@{#41902}
2016-12-21 18:12:09 +00:00
Adam Klein
91a7a91678 Add gsathya to top-level OWNERS
R=bmeurer@chromium.org, gsathya@chromium.org, yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2591613003 .
Cr-Commit-Position: refs/heads/master@{#41901}
2016-12-21 17:49:41 +00:00
caitp
3d6a477bd0 [cctest] print name instead of context index for CallJSRuntime
Change bytecode-expectations-printer.cc in the cctest application so
that intrinsic function names are printed rather than their native
context index.

This minimizes the amount of unnecessary changes to the bytecode
expectations that need to happen whenever the context fields are
changed.

BUG=v8:5769
R=neis@chromium.org, rmcilroy@chromium.org, adamk@chromium.org

Review-Url: https://codereview.chromium.org/2593823002
Cr-Commit-Position: refs/heads/master@{#41900}
2016-12-21 16:41:11 +00:00
ishell
7cd573f439 [runtime] Remove specific Descriptor subclasses and add respective factory methods instead.
This is a preliminary step for constant tracking.

BUG=v8:5495

Review-Url: https://codereview.chromium.org/2595893002
Cr-Commit-Position: refs/heads/master@{#41899}
2016-12-21 16:40:00 +00:00
bjaideep
19aa7a20b0 PPC/s390: [TypeFeedbackVector] Root literal arrays in function literals slots
Port 93df094081

Original Commit Message:

    Literal arrays and feedback vectors for a function can be garbage
    collected if we don't have a rooted closure for the function, which
    happens often. It's expensive to come back from this (recreating
    boilerplates and gathering feedback again), and the cost is
    disproportionate if the function was inlined into optimized code.

    To guard against losing these arrays when we need them, we'll now
    create literal arrays when creating the feedback vector for the outer
    closure, and root them strongly in that vector.

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

Review-Url: https://codereview.chromium.org/2592043003
Cr-Commit-Position: refs/heads/master@{#41898}
2016-12-21 16:37:20 +00:00
danno
455c244cbd [ics]: Remove deprecated support for patching LoadICs and StoreICs
Review-Url: https://codereview.chromium.org/2593033002
Cr-Commit-Position: refs/heads/master@{#41897}
2016-12-21 16:02:12 +00:00
leszeks
7c18f1976a Revert of abstract_code: return compiled code for compiled shared funcs (patchset #2 id:20001 of https://codereview.chromium.org/2592703002/ )
Reason for revert:
Breaks tree:

http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/9970

Original issue's description:
> abstract_code: return compiled code for compiled shared funcs
>
> SharedFunctionInfo's abstract_code was returning the bytecode array
> whenever SharedFunctionInfo had a bytecode array, even if the function
> was compiled (e.g. tiered up to FCG). This meant that abstract_code
> could return code that is not actually the code that will run, which was
> causing problems in profiling as the sampled PC did not match the known
> code offset.
>
> This patch changes both SharedFunctionInfo and JSFunction to return the
> bytecode if-and-only-if they are not compiled and have a bytecode array
> to return, or they already point to the interpreter trampoline.
>
> BUG=v8:5758
>
> Review-Url: https://codereview.chromium.org/2592703002
> Cr-Commit-Position: refs/heads/master@{#41894}
> Committed: 679b31c214

TBR=bmeurer@chromium.org,mstarzinger@chromium.org,mvstanton@chromium.org,mythria@chromium.org,rmcilroy@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5758

Review-Url: https://codereview.chromium.org/2591223002
Cr-Commit-Position: refs/heads/master@{#41896}
2016-12-21 15:42:07 +00:00
bbudge
7a6138ae11 [WASM] Skip SIMD test values that may result in denormalized numbers.
On ARM Neon at least, denormals flush to zero, which may not match
regular FP behavior.

LOG=N
BUG=v8:4124

Review-Url: https://codereview.chromium.org/2598583002
Cr-Commit-Position: refs/heads/master@{#41895}
2016-12-21 15:31:42 +00:00
leszeks
679b31c214 abstract_code: return compiled code for compiled shared funcs
SharedFunctionInfo's abstract_code was returning the bytecode array
whenever SharedFunctionInfo had a bytecode array, even if the function
was compiled (e.g. tiered up to FCG). This meant that abstract_code
could return code that is not actually the code that will run, which was
causing problems in profiling as the sampled PC did not match the known
code offset.

This patch changes both SharedFunctionInfo and JSFunction to return the
bytecode if-and-only-if they are not compiled and have a bytecode array
to return, or they already point to the interpreter trampoline.

BUG=v8:5758

Review-Url: https://codereview.chromium.org/2592703002
Cr-Commit-Position: refs/heads/master@{#41894}
2016-12-21 15:14:16 +00:00
mvstanton
93df094081 [TypeFeedbackVector] Root literal arrays in function literals slots
Literal arrays and feedback vectors for a function can be garbage
collected if we don't have a rooted closure for the function, which
happens often. It's expensive to come back from this (recreating
boilerplates and gathering feedback again), and the cost is
disproportionate if the function was inlined into optimized code.

To guard against losing these arrays when we need them, we'll now
create literal arrays when creating the feedback vector for the outer
closure, and root them strongly in that vector.

BUG=v8:5456

Review-Url: https://codereview.chromium.org/2504153002
Cr-Commit-Position: refs/heads/master@{#41893}
2016-12-21 14:06:29 +00:00
jgruber
c9cb94a06f [regexp] Remove IsRegExp intrinsic
The two remaining uses of this intrinsic in debug.js and mirrors.js now
simply rely on the runtime function.

BUG=v8:5339

Review-Url: https://codereview.chromium.org/2591923003
Cr-Commit-Position: refs/heads/master@{#41892}
2016-12-21 13:55:27 +00:00
titzer
55fc5c0c32 [wasm] Rename wasm::LocalType to wasm::ValueType and kAst* to kWasm*
This is more renaming work to comply with the naming in the public
design repository. E.g. types are called "value types" and we no longer
refer to ASTs.

R=clemensh@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2594993002
Cr-Commit-Position: refs/heads/master@{#41891}
2016-12-21 13:43:00 +00:00
jgruber
bc981e61de [promises] Simplify PromiseSetHasHandler
No need to untag/tag flags, and we can also omit the write barrier.

BUG=v8:5343

Review-Url: https://codereview.chromium.org/2591193002
Cr-Commit-Position: refs/heads/master@{#41890}
2016-12-21 13:34:44 +00:00