Commit Graph

38271 Commits

Author SHA1 Message Date
hpayer
b643bb7713 [heap] Add atomics to mark bit operations.
BUG=chromium:694255

Review-Url: https://codereview.chromium.org/2492263002
Cr-Commit-Position: refs/heads/master@{#43679}
2017-03-08 16:31:18 +00:00
bjaideep
e7be85daf6 PPC/s390: [assembler] Make register definitions constexpr
Port e82b7ccd32

Original Commit Message:

    I originally needed this for the initialization of a constexpr array in
    the wasm lazy compile builtin, but since it's a bigger change, I now
    split it off as this separate CL.
    The style guide recommends constexpr over const. I thus apply the
    constexprificaton over all headers that I touched anyway.

    I also remove the ARM64_DEFINE_REG_STATICS hack. It was introduced when
    merging in arm64 support more than three years ago, and I don't see the
    purpose for this.
    Also, some #defines can now be constexpr definitions, which was not
    possible before according to the comment.

R=clemensh@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2733323003
Cr-Commit-Position: refs/heads/master@{#43678}
2017-03-08 16:24:01 +00:00
Ross McIlroy
cb3f137639 [Flags] Remove compiler_dispatcher as implication of --ignition_staging.
The compiler dispatcher is not being used yet by Ignition, so we shouldn't
enable it when enabling Ignition + TurboFan by default.

Change-Id: I2806608ba95080df3538ef66373165107ac3beb6
Reviewed-on: https://chromium-review.googlesource.com/451279
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43677}
2017-03-08 15:47:08 +00:00
bjaideep
efd43f0947 PPC/s390: Make explicit that RelocInfo's target_object is always a HeapObject.
Port e1fde26608

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

Review-Url: https://codereview.chromium.org/2739813002
Cr-Commit-Position: refs/heads/master@{#43676}
2017-03-08 15:42:53 +00:00
Michael Starzinger
72975d3597 [bootstrapper] Bump stack requirement for native compilation.
This bumps the required stack space gap when the bootstrapper kicks off
compilation of native scripts during genesis. The stack requirements are
now higher for simulators in no-snapshot mode with Ignition being used.

R=jochen@chromium.org
TEST=mjsunit/regress/regress-681984
BUG=v8:6066

Change-Id: I65df388d1b57c09db124ac9a85d380b4edb7d260
Reviewed-on: https://chromium-review.googlesource.com/451275
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43675}
2017-03-08 15:25:03 +00:00
Ilija.Pavlovic
92da406213 MIPS64: Fix declaration for bit() function.
From declarations of bit() member functions (for structures Register,
FPURegister and FPUControlRegister) are removed constexpr specificators.

Build V8 will fail if function bit() is declared as a constant
expression.

TEST=
BUG=

Review-Url: https://codereview.chromium.org/2737143002
Cr-Commit-Position: refs/heads/master@{#43674}
2017-03-08 15:09:16 +00:00
leszeks
65a07b7a10 [tools/profview] Add individual function timeline view
Adds a bar below the current timeline view which can show the time
when an individual function was on the stack. Functions in the call
stack are now clickable to show them in this view.

Sections where the function was on the stack, but not at the top, are
displayed at half height.

Review-Url: https://codereview.chromium.org/2737083003
Cr-Commit-Position: refs/heads/master@{#43673}
2017-03-08 15:03:22 +00:00
Michael Starzinger
fb887b8192 [zone] Fix propagation of OOM in Zone::NewSegment.
This fixes various allocator methods to properly propagate {nullptr} to
callers without accidentally dereferencing it. We also disable one test
case for stress mode as it runs out of memory due to inlining limits
being lifted in the stress mode.

R=bmeurer@chromium.org
TEST=mjsunit/array-natives-elements
BUG=v8:6061

Change-Id: Id0a7b826a8612d00b4f4ae8aa0bea011c50890ca
Reviewed-on: https://chromium-review.googlesource.com/451365
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43672}
2017-03-08 13:26:55 +00:00
bmeurer
6560707945 [ia32] Fix invalid DCHECK on cmpw with immediate.
The immediate passed to cmpw can be either a signed 16-bit or an
unsigned 16-bit integer, but the DCHECK was testing for signed 16-bit
values only.

R=mstarzinger@chromium.org
BUG=v8:6063

Review-Url: https://codereview.chromium.org/2735363002
Cr-Commit-Position: refs/heads/master@{#43671}
2017-03-08 13:04:45 +00:00
Michael Lippautz
215af922ca [heap] Reuse space of last closed LAB
Reuse the last LAB's unused area for further newspace allocation.

This is relevant when we expect GCs that use evacuation to compact down
new space to just live bytes for single tasks.

BUG=chromium:651354

Change-Id: Ic418521d98f418a93d3748b824e3ddb6ff7a40c3
Reviewed-on: https://chromium-review.googlesource.com/451398
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43670}
2017-03-08 12:40:14 +00:00
Michael Lippautz
724095aaba [heap] Remove VerifyAllObjectsBlack from VisitLiveObjects
Markbits should be verified in VerifyMarking and friends. The function
may also be used then e.g. iterating just black objects while
incremental marking is active for the fast promotion mode.

BUG=chromium:694255

Change-Id: Ia719a983fec27b2bae03f8c6c3332003a10e8823
Reviewed-on: https://chromium-review.googlesource.com/451363
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43669}
2017-03-08 12:04:18 +00:00
Jochen Eisinger
dee757f43b Remove incorrect assumption that a failed context creation throws
BUG=chromium:696464
R=yangguo@chromium.org

Change-Id: Ie873e8af6af4dd95897f5f85e0eac5a350f59b32
Reviewed-on: https://chromium-review.googlesource.com/449714
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43668}
2017-03-08 12:03:15 +00:00
Georg Neis
dcf46a67c0 [heap] Fix a comment.
BUG=

Change-Id: I7aed8e7bd35f59196b1b178942355aef4c97bca8
Reviewed-on: https://chromium-review.googlesource.com/451379
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43667}
2017-03-08 12:02:12 +00:00
cwhan.tunz
5fc1bd5b32 [typedarrays] check byte offset for fast typedarray sort
BUG=v8:5953

Review-Url: https://codereview.chromium.org/2733393002
Cr-Commit-Position: refs/heads/master@{#43666}
2017-03-08 12:01:19 +00:00
Michael Lippautz
efd4b2d3af [heap] Bail out for page promotion tests when feature is disabled
BUG=chromium:651354

Change-Id: Iaa2be2504474842d101f19fa2f6c15baa88544c6
Reviewed-on: https://chromium-review.googlesource.com/451497
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43665}
2017-03-08 12:01:10 +00:00
machenbach
938e06f68f Revert of Turn on Ignition + TurboFan. (patchset id:20001 of https://codereview.chromium.org/2736723006/ )
Reason for revert:
Collected enough test failures: http://crbug.com/698746

Original issue's description:
> Turn on Ignition + TurboFan.
>
>  _____            _ _   _
> |_   _|          (_) | (_)
>   | |  __ _ _ __  _| |_ _  ___  _ __
>   | | / _` | '_ \| | __| |/ _ \| '_ \
>  _| || (_| | | | | | |_| | (_) | | | |
>  \___/\__, |_| |_|_|\__|_|\___/|_| |_|
>        __/ |
>       |___/
>
>                     _
>                   _| |_
>                  |_   _|
>                    |_|
>
>
>
>  _____          _          ______
> |_   _|        | |         |  ___|
>   | |_   _ _ __| |__   ___ | |_ __ _ _ __
>   | | | | | '__| '_ \ / _ \|  _/ _` | '_ \
>   | | |_| | |  | |_) | (_) | || (_| | | | |
>   \_/\__,_|_|  |_.__/ \___/\_| \__,_|_| |_|
>
>
> BUG=v8:5267, v8:4280, chromium:692409
> NOTREECHECKS=true
>
> Review-Url: https://codereview.chromium.org/2736723006
> Cr-Commit-Position: refs/heads/master@{#43663}
> Committed: e7f8575851

TBR=mstarzinger@chromium.org,danno@chromium.org,bmeurer@chromium.org,rmcilroy@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:5267, v8:4280, chromium:692409

Review-Url: https://codereview.chromium.org/2732113005
Cr-Commit-Position: refs/heads/master@{#43664}
2017-03-08 11:47:14 +00:00
mvstanton
e7f8575851 Turn on Ignition + TurboFan.
_____            _ _   _
|_   _|          (_) | (_)
  | |  __ _ _ __  _| |_ _  ___  _ __
  | | / _` | '_ \| | __| |/ _ \| '_ \
 _| || (_| | | | | | |_| | (_) | | | |
 \___/\__, |_| |_|_|\__|_|\___/|_| |_|
       __/ |
      |___/

                    _
                  _| |_
                 |_   _|
                   |_|

 _____          _          ______
|_   _|        | |         |  ___|
  | |_   _ _ __| |__   ___ | |_ __ _ _ __
  | | | | | '__| '_ \ / _ \|  _/ _` | '_ \
  | | |_| | |  | |_) | (_) | || (_| | | | |
  \_/\__,_|_|  |_.__/ \___/\_| \__,_|_| |_|

BUG=v8:5267, v8:4280, chromium:692409
NOTREECHECKS=true

Review-Url: https://codereview.chromium.org/2736723006
Cr-Commit-Position: refs/heads/master@{#43663}
2017-03-08 08:10:59 +00:00
yangguo
77165eb4df [debug] change coverage API to use offset instead of line/column.
R=caseq@chromium.org, pfeldman@chromium.org
BUG=v8:5808

Review-Url: https://codereview.chromium.org/2733783002
Cr-Commit-Position: refs/heads/master@{#43662}
2017-03-08 07:23:21 +00:00
jarin
18f169d46c [turbofan] Propagate minus-zero truncation in representation inference.
This introduces a new truncation bit for truncation of minus-zero to zero.

At the moment it is only used to handle the limit cases of deopt, such as the
one in the Google maps workload (see simplified version below), where the -q
(which is desugared to q * -1.0) currently deoptimizes because the result would
produce minus zero. To handle this situation, we exploit the knowledge that
righthand side of + cannot be -0, so even if lefthand side was -0, the result
would still be 0 (so the + operation cannot distinguish between left hand side
0 and -0).

function f(q) {
  q -= 4;
  return (-q) + q;
}

f(10);
f(10);
%OptimizeFunctionOnNextCall(f);
f(4);

Review-Url: https://codereview.chromium.org/2734253002
Cr-Commit-Position: refs/heads/master@{#43661}
2017-03-08 06:11:37 +00:00
bmeurer
99aaa69b29 [turbofan] Consume feedback types for NumberMax and NumberMin.
For nodes

  NumberMin(lhs, rhs)
  NumberMax(lhs, rhs)

we might have feedback types for lhs and rhs that would allow us to
generate unsigned32 or signed32 versions of this operator, which is way
more efficient that going to the full Float64Min/Float64Max operator.
However we cannot promise word32 truncations in this case, since we
based this decision on the feedback types.

This allows us to generate better code for Math.min and Math.max when
one of the inputs is a speculative number operator that provides better
typing during representation selection. We've seen such code in the
hottest function on Google Maps for example.

BUG=v8:5267
R=jarin@chromium.org,mvstanton@chromium.org

Review-Url: https://codereview.chromium.org/2734193003
Cr-Commit-Position: refs/heads/master@{#43660}
2017-03-08 06:05:41 +00:00
v8-autoroll
76224f7e49 Update V8 DEPS.
Rolling v8/build: 789a49b..5f4c2a0

Rolling v8/third_party/catapult: 353ee60..299d02a

Rolling v8/third_party/instrumented_libraries: f68b0bb..e905e0f

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

Change-Id: I4ea92a14f0533e39cc4ec1cf556e4cb8480d0d13
Reviewed-on: https://chromium-review.googlesource.com/450761
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43659}
2017-03-08 04:28:25 +00:00
bbudge
78382d7272 [WASM] Implement remaining F32x4 operations for ARM.
- Implements Float32x4 Mul, Min, Max for ARM.
- Implements Float32x4 relational ops for ARM.
- Implements reciprocal, reciprocal square root estimate/refinement ops for ARM.
- Reorganizes tests to eliminate need for specialized float ref fns in tests.
- Rephrases Gt, Ge in terms of Lt, Le, and eliminates the redundant machine
  operators.
- Renames test-run-wasm-simd test names to match instructions.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2729943002
Cr-Commit-Position: refs/heads/master@{#43658}
2017-03-08 00:01:36 +00:00
kozyatinskiy
e502665d34 [inspector] added createContextGroup for tests
BUG=none
R=dgozman@chromium.org

Review-Url: https://codereview.chromium.org/2737603006
Cr-Commit-Position: refs/heads/master@{#43657}
2017-03-07 22:30:05 +00:00
kozyatinskiy
07ada64a57 [inspector] added length for scriptParsed notification
BUG=none
R=caseq@chromium.org

Review-Url: https://codereview.chromium.org/2740623002
Cr-Commit-Position: refs/heads/master@{#43656}
2017-03-07 22:01:37 +00:00
Ross McIlroy
f774d8c56f [Flags] Add negation implications for --turbo negative so --no-turbo works.
Once we enabled --turbo by default we need to turn all the implications
off with --no-turbo as well. Chrome sets flags in V8 using SetFlagFromString,
which enforces the implications each time it is called. Therefore, if --turbo
is enabled by default, and an unrelated flag is set, the turbo implications are
enabled but not later disabled if we set --no-turbo. To fix this, add negative
implications as well.

BUG=chromium:692409

Change-Id: Iadb0ca542f49ba65c7419cda8c7a03636a8d5ba9
Reviewed-on: https://chromium-review.googlesource.com/451320
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43655}
2017-03-07 20:41:12 +00:00
clemensh
6cf8f54d90 [wasm] Fix interpreter entry for i64 return type
Fix two issues in the interpreter entry for 64 bit return values on
32 bit platforms. First, the effect chain was slightly incorrect, second
the order of the returned values was wrong.

Also add a test case for this.
Tested on x64, ia32 and s390.

Plus drive-by fix in Int64Lowering to reuse global constants for
big-endian/little-endian disambiguation.

R=titzer@chromium.org
BUG=v8:5822

Review-Url: https://codereview.chromium.org/2731713002
Cr-Commit-Position: refs/heads/master@{#43654}
2017-03-07 18:03:08 +00:00
Andreas Haas
269983f388 [wasm] Add a field for the Wrapper Tracer to WebAssembly API objects.
Issue 6051 description: "Blink blindly assumes that it can get an
aligned pointer from the 0-th internal field of any object that has two
internal fields."

R=titzer@chromium.org, jochen@chromium.org

BUG=v8:6051

Change-Id: I814b76e508ffd9fe2326bd0e728129f2a013b807
Reviewed-on: https://chromium-review.googlesource.com/451319
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43653}
2017-03-07 18:01:46 +00:00
Michael Achenbach
5f00d289f6 [build] Introduce build flag to disable turbofan.
BUG=chromium:682617

Change-Id: I58800e5cf1926fabc684e0f140c2856175877bda
Reviewed-on: https://chromium-review.googlesource.com/451418
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43652}
2017-03-07 17:53:44 +00:00
bbudge
b23f6a462e [WASM] Fix failing F32x4 Equal, NotEqual tests.
- Fix typo, compare operand diff should be a float.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2734173003
Cr-Commit-Position: refs/heads/master@{#43651}
2017-03-07 17:52:08 +00:00
jgruber
3c246db781 [ic] Completely unroll polymorphic IC map checks
Polymorphic IC feedback can contain up to four (map, handler) pairs.

HandlePolymorphicCase already unrolled checks for the first two pairs; these
are guaranteed to exist and can omit bound checks.

This CL unrolls checks against the final two pairs as well.

BUG=v8:5917

Review-Url: https://codereview.chromium.org/2728293005
Cr-Commit-Position: refs/heads/master@{#43650}
2017-03-07 16:57:07 +00:00
jkummerow
c478a2298d SnapshotCreator: start from existing snapshot if we have one
This requires serialized data to track the number of API-provided
external references separately.
And it flushes out a case of serialized data corruption (stored "length"
field too large) that we didn't handle without crashing.

BUG=v8:6055

Review-Url: https://codereview.chromium.org/2736923002
Cr-Commit-Position: refs/heads/master@{#43649}
2017-03-07 16:36:51 +00:00
Sathya Gunasekaran
5a36af3ceb [promises] Fix fast path in Promise.resolve
The receiver in the case of Promise.resolve is the promise
constructor, not an instance of Promise.

BUG=chromium:691875

Change-Id: I43e914aac51077b28c7954c8023780b9174df825
Reviewed-on: https://chromium-review.googlesource.com/450884
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43648}
2017-03-07 16:02:21 +00:00
bjaideep
7c0f3f0623 AIX: Work around for malloc(0) behavior
malloc(0) returning 0 is expected behavior on AIX but
compiling with -D_LINUX_SOURCE_COMPAT, malloc(0) should
return a valid pointer (which we do define for AIX). However,
including cstdlib resets the behaviour of _LINUX_SOURCE_COMPAT.
GCC bug: 79839

R=jochen@chromium.org, titzer@chromium.org
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2732743002
Cr-Commit-Position: refs/heads/master@{#43647}
2017-03-07 15:49:20 +00:00
Michael Achenbach
58ff145ef0 [release] Temporarily disable gerrit for merge tools.
BUG=chromium:698845
NOTRY=true
TBR=hablich@chromium.org,tandrii@chromium.org

Change-Id: I970c984c5e9bd23ca3d951d13243d107fc2a2e3f
Reviewed-on: https://chromium-review.googlesource.com/451280
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Hablich <hablich@chromium.org>
Commit-Queue: Michael Hablich <hablich@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43646}
2017-03-07 15:31:51 +00:00
hpayer
6517b4477c [heap] Do not clear mark bits of left trimmed old object start.
BUG=chromium:694255

Review-Url: https://codereview.chromium.org/2731363002
Cr-Commit-Position: refs/heads/master@{#43645}
2017-03-07 15:16:49 +00:00
Toon Verwaest
7bc196d2a5 [interpreter] Mark known immutable context slots as immutable
BUG=

Change-Id: I85f9619e0ecb7d0ebee9523e3b4c44ab7f091cfb
Reviewed-on: https://chromium-review.googlesource.com/451380
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43644}
2017-03-07 14:56:05 +00:00
ahaas
040fa762df [arm64][turbofan] Do not use ubfx for shr+and combination for mask=0.
R=titzer@chromium.org, v8-arm-ports@googlegroups.com
BUG=v8:6046

Review-Url: https://codereview.chromium.org/2737493002
Cr-Commit-Position: refs/heads/master@{#43643}
2017-03-07 14:54:05 +00:00
bmeurer
f0e7a3174e [turbofan] Extend optimization of flooring integer division.
So far we only recognize the special

  NumberFloor(NumberDivide(lhs, rhs))

subgraph when both lhs and rhs are in the Unsigned32 range, and the
result is a PlainNumber. Extend this pattern matching to also cover

  NumberFloor(SpeculativeNumberDivide(lhs, rhs))

and to replace the NumberFloor with NumberToInt32 truncation if the
lhs value is in Signed32 range and the rhs is in Unsigned32 range.

R=jarin@chromium.org
BUG=v8:5267

Review-Url: https://codereview.chromium.org/2739573004
Cr-Commit-Position: refs/heads/master@{#43642}
2017-03-07 14:46:10 +00:00
Marja Hölttä
f489f7ab44 [parser] Skipping inner funcs: collect data needed for allocation, not the allocation result.
This pretty much rewrites the preparsed scope data collection. We used to store
the allocation result, but it's faster to just store the raw data which is
needed for deciding it later. (This way we don't need to run the allocation
algorithm for just getting this data.)

For each variable: is_used, maybe_assigned,
has_forced_context_allocation, and for each scope:
inner_scope_calls_eval_.

In addition, this CL moves data handling out of Scope and into
PreParsedScopeData where it belongs and simplifies the API for
PreParsedScopeData.

BUG=v8:5516
R=vogelheim@chromium.org

Change-Id: Ia5a4fa52f585cd4f483ce9a92f2dd7d9754f34ed
Reviewed-on: https://chromium-review.googlesource.com/451273
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43641}
2017-03-07 14:23:14 +00:00
ulan
dab18fb0bb Make idle tasks optional in the default platform.
BUG=v8:6056

Review-Url: https://codereview.chromium.org/2737743002
Cr-Commit-Position: refs/heads/master@{#43640}
2017-03-07 13:37:41 +00:00
jarin
698c2f3bbd [profiler] Web UI - add time-as-text description to the interval highlight.
Review-Url: https://codereview.chromium.org/2732883004
Cr-Commit-Position: refs/heads/master@{#43639}
2017-03-07 13:29:43 +00:00
mvstanton
15bed19495 Adjust some tests to prepare enabling Ignition+TurboFan
BUG=v8:5267, chromium:692409

Review-Url: https://codereview.chromium.org/2720713003
Cr-Commit-Position: refs/heads/master@{#43638}
2017-03-07 13:27:55 +00:00
Clemens Hammacher
e82b7ccd32 [assembler] Make register definitions constexpr
I originally needed this for the initialization of a constexpr array in
the wasm lazy compile builtin, but since it's a bigger change, I now
split it off as this separate CL.
The style guide recommends constexpr over const. I thus apply the
constexprificaton over all headers that I touched anyway.

I also remove the ARM64_DEFINE_REG_STATICS hack. It was introduced when
merging in arm64 support more than three years ago, and I don't see the
purpose for this.
Also, some #defines can now be constexpr definitions, which was not
possible before according to the comment.

R=bmeurer@chromium.org, mstarzinger@chromium.org, ishell@chromium.org

Change-Id: I6d743b4462c347d363f99e28007bc9e8c84ae617
Reviewed-on: https://chromium-review.googlesource.com/451277
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43637}
2017-03-07 12:49:21 +00:00
loorongjie
8038f1bd67 Allow constexpr function in MSVC
BUG=NO

Review-Url: https://codereview.chromium.org/2731263003
Cr-Commit-Position: refs/heads/master@{#43636}
2017-03-07 11:56:18 +00:00
Clemens Hammacher
83b96b5832 [assembler] [wasm] Don't flush the icache twice
Several code patching paths actually flushed the icache twice.
This CL removes all icache flushing on wasm updates from
assembler.cc and pushes it into the platform specific
unchecked_update_wasm_size and
unchecked_update_wasm_memory_reference methods. They were already
receiving the ICacheFlushMode, and on some platforms would already
perform the flush.

R=ahaas@chromium.org

Change-Id: I388701f13d733cb5387d5bed4dbed33879179a91
Reviewed-on: https://chromium-review.googlesource.com/450246
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43635}
2017-03-07 11:01:36 +00:00
Toon Verwaest
ab47148421 [runtime] Remove Iterator from OrderedHashTable declaration
It's unused.

BUG=v8:5717

Change-Id: I2609d8fd686e74ab31ea2f21d247d054305b2cad
Reviewed-on: https://chromium-review.googlesource.com/451357
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43634}
2017-03-07 10:47:31 +00:00
Georg Neis
e1fde26608 Make explicit that RelocInfo's target_object is always a HeapObject.
BUG=v8:6048

Change-Id: Iecca35fa73d036ca6043712e3b14bf449ff2e457
Reviewed-on: https://chromium-review.googlesource.com/449734
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43633}
2017-03-07 10:42:55 +00:00
bmeurer
8150cb2c3c [macros] Implement NUMBER_IS_NAN in terms of strict equality.
This slighty improves the Map/Set implementations in the new pipeline,
which makes heavy use of NUMBER_IS_NAN.

BUG=v8:5267
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2740433003
Cr-Commit-Position: refs/heads/master@{#43632}
2017-03-07 10:39:00 +00:00
Daniel Cheng
98d03583ca Add inspector headers to top-level v8 target if inspector is enabled.
Otherwise, v8 embedders need to depend on targets in src.

BUG=chromium:688155

Change-Id: Idea90d8f550cd4d0141b92a7bdd18f4df664d11b
Reviewed-on: https://chromium-review.googlesource.com/447845
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43631}
2017-03-07 10:28:00 +00:00
jgruber
0bfabaf174 [ic] Inline LoadIC into LdaNamedProperty bytecode handler
This inlines common LoadIC cases into the LdaNamedProperty bytecode
handler. Smi handlers resulting in constant/field loads for
monomorphic ICs omit frame construction. The same counts for the
polymorphic case as long as the target handler is in the first two
vector slots.

Other cases (megamorphic, uninitialized) call the new
LoadIC_Noninlined stub.

Local benchmarks show up to 6% improvement on Sunspider with --future.

BUG=v8:5917

Review-Url: https://codereview.chromium.org/2733563002
Cr-Commit-Position: refs/heads/master@{#43630}
2017-03-07 10:21:33 +00:00