Commit Graph

31495 Commits

Author SHA1 Message Date
ivica.bogosavljevic
bf51705eca MIPS64: Fix '[stubs] Remove N-argument Hydrogen-based Array constructor stub.'
Port: c8ac0d8693

Fix compliation failure on MIPS64 big-endian caused by typo
in implementation.

BUG=

Review-Url: https://codereview.chromium.org/2065903002
Cr-Commit-Position: refs/heads/master@{#36953}
2016-06-14 09:16:25 +00:00
clemensh
759baaff78 [wasm] Refactor function name table and lookup
The function name table will now always be set; a CHECK will fail if
the length would exceed the integer range.
Also, the resolution of undefined function names to "<WASM UNNAMED>" is
moved over to the wasm side.

R=titzer@chromium.org

Committed: https://crrev.com/3400ee9f4f21a455b7850ec42a4182a3c0eba310
Review-Url: https://codereview.chromium.org/2057523002
Cr-Original-Commit-Position: refs/heads/master@{#36918}
Cr-Commit-Position: refs/heads/master@{#36952}
2016-06-14 09:07:43 +00:00
mstarzinger
56a9df6be0 Update SharedFunctionInfoVerify to new object model.
The builtin function ID has been moved from the [function_data] field to
the [function_location] field. This just updates existing verification
functionality to be in sync.

R=rmcilroy@chromium.org

Review-Url: https://codereview.chromium.org/2064723002
Cr-Commit-Position: refs/heads/master@{#36951}
2016-06-14 08:58:54 +00:00
jarin
6470ddadf9 [turbofan] Prevent storing signalling NaNs into holey double arrays.
This introduces SilenceNaN operator, which makes sure that we only
store quiet NaNs into holey arrays. We omit the NaN silencing code
at instruction selection time if the input is an operation that
cannot possibly produce signalling NaNs.

BUG=

Review-Url: https://codereview.chromium.org/2060233002
Cr-Commit-Position: refs/heads/master@{#36950}
2016-06-14 08:24:43 +00:00
mstarzinger
3b2da29532 [turbofan] Remove some TODOs that no longer apply.
R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2067513002
Cr-Commit-Position: refs/heads/master@{#36949}
2016-06-14 08:00:48 +00:00
Ilija.Pavlovic
3dbc7586fb MIPS64: Fix compilation issues on MIPS64R6 with Clang.
This patch enables V8 build with Clang without errors for MIPS64
release R6.

TEST=
BUG=

Review-Url: https://codereview.chromium.org/2062713002
Cr-Commit-Position: refs/heads/master@{#36948}
2016-06-14 07:02:34 +00:00
bmeurer
85e5567dae [turbofan] Introduce a dedicated CheckBounds operator.
This CheckBounds simplified operator is similar to the HBoundsCheck in
Crankshaft, and is hooked up to the new type feedback support in the
SimplifiedLowering. We use it to check the index bounds for keyed
property accesses.

Note to perf sheriffs: This will tank quite a few benchmarks, as the
operator makes some redundant branch elimination ineffective for
certain patterns of keyed accesses. This does require more serious
redundancy elimination, which we will do in a separate CL. So ignore
any regressions from this CL, we know there will be a few.

R=jarin@chromium.org
BUG=v8:4470,v8:5100

Review-Url: https://codereview.chromium.org/2035893004
Cr-Commit-Position: refs/heads/master@{#36947}
2016-06-14 06:12:06 +00:00
jyan
b78b0bf90c S390: [builtins] Introduce proper Float64Log1p, Float64Atan and Float64Atan2 operators.
Port 7ceed92ac0
Port 89d8c57b9c

Original commit message:

    Import base::ieee754::atan() and base::ieee754::atan2() from fdlibm and
    introduce Float64Atan and Float64Atan2 TurboFan operators based on those,
    similar to what we already did for Float64Log and Float64Log1p. Rewrite
    Math.atan() and Math.atan2() as TurboFan builtin and use the operators
    to also inline Math.atan() and Math.atan2() into optimized TurboFan functions.

    Import base::ieee754::log1p() from fdlibm and introduce a Float64Log1p
    TurboFan operator based on that, similar to what we do for Float64Log.
    Rewrite Math.log1p() as TurboFan builtin and use that operator to also
    inline Math.log1p() into optimized TurboFan functions.

    Also unify the handling of the special IEEE 754 functions somewhat in
    the TurboFan backends. At some point we can hopefully express this
    completely in the InstructionSelector (once we have an idea what to do
    with the ST(0) return issue on IA-32/X87).

    Drive-by-fix: Add some more test coverage for the log function.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2064783002
Cr-Commit-Position: refs/heads/master@{#36946}
2016-06-14 06:12:05 +00:00
jyan
03bf4dc0fd S390: Fix arguments object stubs for large arrays.
Port e95cfafb67

Original commit message:

    This fixes FastNewStrictArgumentsStub and FastNewRestParameterStub to no
    longer assume that the strict arguments object being allocated will fit
    into new-space. The case where said object needs to move to large object
    space is now handled in the runtime.

R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2064023002
Cr-Commit-Position: refs/heads/master@{#36945}
2016-06-14 06:12:04 +00:00
bbudge
24139633c8 [Turbofan] Eliminate unnecessary OperandComparer.
LOG=N
BUG=v8:4124

Review-Url: https://codereview.chromium.org/2067463003
Cr-Commit-Position: refs/heads/master@{#36944}
2016-06-13 21:30:09 +00:00
gdeepti
ea8f887f32 [wasm] MemSize, BoundsCheck should use Relocatable constants
MemSize should use Relocatable constants, remove unconditional throw
on no linear memory as this should be patched on GrowMemory.

R=mtrofin@chromium.org, bradnelson@chromium.org

Review-Url: https://codereview.chromium.org/2067433003
Cr-Commit-Position: refs/heads/master@{#36943}
2016-06-13 21:08:04 +00:00
jpp
73eacf6b90 V8. ASM-2-WASM. New type system.
This CL introduces the new type system for the ASM
type-checker/validator.

BUG=

Review-Url: https://codereview.chromium.org/2045703007
Cr-Commit-Position: refs/heads/master@{#36942}
2016-06-13 20:44:53 +00:00
littledan
85c2c8d847 Revert of change most cases of variable redeclaration from TypeError to SyntaxError (patchset #8 id:140001 of https://codereview.chromium.org/2048703002/ )
Reason for revert:
This is going to break the LayoutTest inspector-protocol/console/console-let-const-with-api.html as seen in https://build.chromium.org/p/tryserver.v8/builders/v8_linux_blink_rel/builds/2247 . Please run this test manually, using instructions at https://www.chromium.org/developers/testing/webkit-layout-tests , and fix on the Chrome side if needed before resubmitting this patch.

Original issue's description:
> change most cases of variable redeclaration from TypeError to SyntaxError.
>
> Code like `let a; eval("var a;");` should throw a SyntaxError, not a TypeError
> (this caused a test262 failure.). However, the code `eval("function NaN() {}");`
> should actually throw a TypeError. This patch changes most cases of
> redeclaration errors from TypeError to SyntaxError. See the test
> mjsunit/regress/redeclaration-error-types for a thorough analysis with spec
> references.
>
> The relevant sections of the spec are ES#sec-globaldeclarationinstantiation and
> ES#sec-evaldeclarationinstantiation
>
> BUG=v8:4955
> LOG=y
>
> Committed: https://crrev.com/2b787561763d0f7e8dab698652715a742cf78291
> Cr-Commit-Position: refs/heads/master@{#36940}

TBR=adamk@chromium.org,jwolfe@igalia.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4955

Review-Url: https://codereview.chromium.org/2064793002
Cr-Commit-Position: refs/heads/master@{#36941}
2016-06-13 18:23:57 +00:00
jwolfe
2b78756176 change most cases of variable redeclaration from TypeError to SyntaxError.
Code like `let a; eval("var a;");` should throw a SyntaxError, not a TypeError
(this caused a test262 failure.). However, the code `eval("function NaN() {}");`
should actually throw a TypeError. This patch changes most cases of
redeclaration errors from TypeError to SyntaxError. See the test
mjsunit/regress/redeclaration-error-types for a thorough analysis with spec
references.

The relevant sections of the spec are ES#sec-globaldeclarationinstantiation and
ES#sec-evaldeclarationinstantiation

BUG=v8:4955
LOG=y

Review-Url: https://codereview.chromium.org/2048703002
Cr-Commit-Position: refs/heads/master@{#36940}
2016-06-13 18:14:41 +00:00
gsathya
e681eea1f1 Parser: Desugar default derived constructor to spread/rest
This patch declares a new rest parameter for the derived constructor,
and passes it to base constructor after calling PrepareSpreadArguments.

This patch also updates the test262.status to account for
the now passing test.

BUG=v8:4890

Review-Url: https://codereview.chromium.org/2056993004
Cr-Commit-Position: refs/heads/master@{#36939}
2016-06-13 18:10:06 +00:00
caitpotter88
1a30866239 [interpreter] support async functions in Ignition
BUG=v8:4483, v8:4907, 618603
LOG=N
R=neis@chromium.org, yangguo@chromium.org, littledan@chromium.org

Review-Url: https://codereview.chromium.org/2051423003
Cr-Commit-Position: refs/heads/master@{#36938}
2016-06-13 17:21:19 +00:00
hlopko
ac1587bb86 Move EmbedderHeapTracer::TracePrologue call to the beginning of full gc
With cl https://codereview.chromium.org/2043033002 blink will add new wrappers
to its marking deque (and maintain this deque) so black allocated wrappers are
not a problem anymore. To limit the scope of when blink has to detect wrappers,
we need to tell blink when we start and when we end full gcs. For that we can
nicely use TracePrologue and TraceEpilogue.

LOG=no
BUG=468240

Review-Url: https://codereview.chromium.org/2051103002
Cr-Commit-Position: refs/heads/master@{#36937}
2016-06-13 17:15:30 +00:00
danno
deb67d7d05 [turbolizer]: Fix bugs
* The default text (placeholder) in the search box is now present.
* All key events handled by turbolizer are not passed through to Chrome.

Review-Url: https://codereview.chromium.org/2061713002
Cr-Commit-Position: refs/heads/master@{#36936}
2016-06-13 16:36:09 +00:00
bjaideep
6203906ccd PPC: [builtins] Introduce proper Float64Log1p, Float64Atan and Float64Atan2 operators.
Port 7ceed92ac0
Port 89d8c57b9c

Original commit message:

    Import base::ieee754::atan() and base::ieee754::atan2() from fdlibm and
    introduce Float64Atan and Float64Atan2 TurboFan operators based on those,
    similar to what we already did for Float64Log and Float64Log1p. Rewrite
    Math.atan() and Math.atan2() as TurboFan builtin and use the operators
    to also inline Math.atan() and Math.atan2() into optimized TurboFan functions.

    Import base::ieee754::log1p() from fdlibm and introduce a Float64Log1p
    TurboFan operator based on that, similar to what we do for Float64Log.
    Rewrite Math.log1p() as TurboFan builtin and use that operator to also
    inline Math.log1p() into optimized TurboFan functions.

    Also unify the handling of the special IEEE 754 functions somewhat in
    the TurboFan backends. At some point we can hopefully express this
    completely in the InstructionSelector (once we have an idea what to do
    with the ST(0) return issue on IA-32/X87).

    Drive-by-fix: Add some more test coverage for the log function.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=v8:5086,v8:5092,v8:5095
LOG=N

Review-Url: https://codereview.chromium.org/2061753002
Cr-Commit-Position: refs/heads/master@{#36935}
2016-06-13 15:31:51 +00:00
bjaideep
145e16c39f PPC: Fix arguments object stubs for large arrays.
Port e95cfafb67

Original commit message:

    This fixes FastNewStrictArgumentsStub and FastNewRestParameterStub to no
    longer assume that the strict arguments object being allocated will fit
    into new-space. The case where said object needs to move to large object
    space is now handled in the runtime.

R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=chromium:614727
LOG=N

Review-Url: https://codereview.chromium.org/2060893002
Cr-Commit-Position: refs/heads/master@{#36934}
2016-06-13 15:28:58 +00:00
hlopko
d5f758eed6 Cleanup after EmbedderHeapTracer api updates
In order to update v8 api and still be able to build chromium, we had to keep
code in suboptimal state. Now when chromium caught up, we can perform cleanup :)

LOG=no
BUG=468240

Review-Url: https://codereview.chromium.org/2057613002
Cr-Commit-Position: refs/heads/master@{#36933}
2016-06-13 14:27:06 +00:00
danno
e52907f807 [turbolizer] Features and bug-fixes
Fix bugs and add a few small useful features:

* Fix Schedule view to properly parse schedule output and respond to switching
  back to graph views.
* Add shorcuts for showing edges of selected nodes.
  - 'i' shows all inputs
  - 'o' shows all outputs
  - '1'-'9' shows all nodes nth input where 1 <= n <= 9
  - 'c' shows all control inputs
  - 'e' shows all effect inputs
* Holding the control key down when using a edge-showing shortcut toggles edge
  state rather the just showing.
* 'a' selects all nodes in graph view.
* Node selection is preserved between graph views and Schedule views.
* Holding control key down when using regular expression search shows currently
  hidden nodes that match the regex search.
* Pane expansion buttons now respond to clicks in entire button area.
* Default text in regex search box makes searching more discoverable.

Review-Url: https://codereview.chromium.org/2059193002
Cr-Commit-Position: refs/heads/master@{#36932}
2016-06-13 13:21:54 +00:00
ahaas
ab46151aea [wasm] Use the new Float64Atan(2) TF operators in wasm.
R=bmeurer@chromium.org, bradnelson@chromium.org
BUG=v8:5086, v8:5095

Review-Url: https://codereview.chromium.org/2062773002
Cr-Commit-Position: refs/heads/master@{#36931}
2016-06-13 12:56:36 +00:00
neis
552ba59eb2 [compiler] Remove bailout in ast-numbering's VisitYield.
It's sufficient to bailout when seeing that the function literal is a
generator or async function, as those are the only cases in which there can be
yields.

Also: add a comment on --turbo-from-bytecode and Ignition generators.

R=mstarzinger@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2060843002
Cr-Commit-Position: refs/heads/master@{#36930}
2016-06-13 12:56:35 +00:00
nikolaos
cdec5e8d26 Remove erroneous DCHECK related to expression classifiers
It seems that I forgot to remove the DCHECK when refactoring this
function, even though the comment had it right.  It also seems that
this is hard to trigger.  The minimal example I found, after fuzzer's
bug, was:

   eval, x[eval]

R=adamk@chromium.org
BUG=chromium:619476
LOG=N

Review-Url: https://codereview.chromium.org/2058413002
Cr-Commit-Position: refs/heads/master@{#36929}
2016-06-13 12:34:19 +00:00
mstarzinger
f002cee0db [compiler] Remove dead disabling of optimizations.
The AstNumberingVisitor is by now strictly running after we allocated
the SharedFunctionInfo. This removes some left-over code from before
that invariant was holding.

R=mvstanton@chromium.org

Review-Url: https://codereview.chromium.org/1965803002
Cr-Commit-Position: refs/heads/master@{#36928}
2016-06-13 12:31:23 +00:00
mstarzinger
689be6e49d [arm] Fix typo in FastNewRestParameterStub::Generate.
TBR=bmeurer@chromium.org
BUG=chromium:619538

Review-Url: https://codereview.chromium.org/2066493002
Cr-Commit-Position: refs/heads/master@{#36927}
2016-06-13 12:28:14 +00:00
jkummerow
31ca317af3 [--runtime-call-stats] Fix ACCESSOR handler computation
When running with FLAG_runtime_call_stats, native accessor accesses must
go through the runtime for accurate accounting. Previously the slow_stub()
was used as a handler in order to accomplish this, but it could never be
looked up from the code cache successfully due to mismatched code flags,
which could cause more handler recompilations than in normal operation.
This patch fixes that by emitting a runtime call into the compiled
handler instead of using the slow_stub().

Drive-by cleanup: drop the unused StoreIC_Megamorphic builtin.

Review-Url: https://codereview.chromium.org/2054133002
Cr-Commit-Position: refs/heads/master@{#36926}
2016-06-13 12:14:18 +00:00
machenbach
51f14c56c6 Revert of [wasm] Refactor function name table and lookup (patchset #2 id:20001 of https://codereview.chromium.org/2057523002/ )
Reason for revert:
[Sheriff] Speculative revert for flaky gc stress crashes, e.g.:
https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/6592
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/6143

Original issue's description:
> [wasm] Refactor function name table and lookup
>
> The function name table will now always be set; a CHECK will fail if
> the length would exceed the integer range.
> Also, the resolution of undefined function names to "<WASM UNNAMED>" is
> moved over to the wasm side.
>
> R=titzer@chromium.org
>
> Committed: https://crrev.com/3400ee9f4f21a455b7850ec42a4182a3c0eba310
> Cr-Commit-Position: refs/heads/master@{#36918}

TBR=titzer@chromium.org,clemensh@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/2062793002
Cr-Commit-Position: refs/heads/master@{#36925}
2016-06-13 11:46:34 +00:00
mstarzinger
471f6baf95 [compiler] Move generator optimization heuristics.
This moves the decision whether to optimize generator or async functions
into the AstNumberingVisitor. Optimization heuristics that are based on
the function source should be encapsulated in this class.

R=neis@chromium.org

Review-Url: https://codereview.chromium.org/2065543002
Cr-Commit-Position: refs/heads/master@{#36924}
2016-06-13 11:43:28 +00:00
cbruni
33b8bc24a1 Revert of Replace all remaining Oddball checks with new function (patchset #10 id:180001 of https://codereview.chromium.org/2043183003/ )
Reason for revert:
failing tests

Original issue's description:
> Replace all remaining Oddball checks with new function
>
> This CL removes the IsUndefined() and Co. methods from Object and HeapObject.
> The new method all take the isolate as parameter.
>
> BUG=
>
> Committed: https://crrev.com/ccefb3ae5fe967288d568013fb04e8761eafebc5
> Cr-Commit-Position: refs/heads/master@{#36921}

TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@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/2060213002
Cr-Commit-Position: refs/heads/master@{#36923}
2016-06-13 11:40:35 +00:00
mstarzinger
30f8d33543 [fullcodegen] Factor out VisitRegExpLiteral from architectures.
This makes the aforementioned visitation function independent of the
target architecture by leveraging existing abstractions.

R=mvstanton@chromium.org

Review-Url: https://codereview.chromium.org/2060173002
Cr-Commit-Position: refs/heads/master@{#36922}
2016-06-13 11:01:39 +00:00
cbruni
ccefb3ae5f Replace all remaining Oddball checks with new function
This CL removes the IsUndefined() and Co. methods from Object and HeapObject.
The new method all take the isolate as parameter.

BUG=

Review-Url: https://codereview.chromium.org/2043183003
Cr-Commit-Position: refs/heads/master@{#36921}
2016-06-13 10:21:02 +00:00
cbruni
8a88fc142f [arrays] Fix %GetArrayKeys for special element kinds
Array.prototype.sort would not work properly on sloppy arguments of size > 2.

BUG=chromium:618613

Review-Url: https://codereview.chromium.org/2051413004
Cr-Commit-Position: refs/heads/master@{#36920}
2016-06-13 10:07:03 +00:00
mvstanton
1473226569 Machine-readable TurboFan compiler statistics
We'd like to track performance metrics in an automated way. This CL introduces
--turbo-stats-nvp which exposes --turbo-stats information in {"name"=value} pair
format.

BUG=

Review-Url: https://codereview.chromium.org/2053383002
Cr-Commit-Position: refs/heads/master@{#36919}
2016-06-13 09:35:49 +00:00
clemensh
3400ee9f4f [wasm] Refactor function name table and lookup
The function name table will now always be set; a CHECK will fail if
the length would exceed the integer range.
Also, the resolution of undefined function names to "<WASM UNNAMED>" is
moved over to the wasm side.

R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2057523002
Cr-Commit-Position: refs/heads/master@{#36918}
2016-06-13 09:32:54 +00:00
mstarzinger
e95cfafb67 Fix arguments object stubs for large arrays.
This fixes FastNewStrictArgumentsStub and FastNewRestParameterStub to no
longer assume that the strict arguments object being allocated will fit
into new-space. The case where said object needs to move to large object
space is now handled in the runtime.

R=bmeurer@chromium.org
TEST=mjsunit/regress/regress-crbug-614727
BUG=chromium:614727

Review-Url: https://codereview.chromium.org/2054853002
Cr-Commit-Position: refs/heads/master@{#36917}
2016-06-13 08:25:43 +00:00
bmeurer
89d8c57b9c [builtins] Introduce proper Float64Atan and Float64Atan2 operators.
Import base::ieee754::atan() and base::ieee754::atan2() from fdlibm and
introduce Float64Atan and Float64Atan2 TurboFan operators based on those,
similar to what we already did for Float64Log and Float64Log1p. Rewrite
Math.atan() and Math.atan2() as TurboFan builtin and use the operators
to also inline Math.atan() and Math.atan2() into optimized TurboFan functions.

R=yangguo@chromium.org
BUG=v8:5086,v8:5095

Review-Url: https://codereview.chromium.org/2065503002
Cr-Commit-Position: refs/heads/master@{#36916}
2016-06-13 07:08:17 +00:00
ishell
2ef6862e5d [builtins] Turn LoadIC_Miss and LoadIC_Slow builtins to TurboFan code stubs.
Review-Url: https://codereview.chromium.org/2033423002
Cr-Commit-Position: refs/heads/master@{#36915}
2016-06-13 07:08:16 +00:00
bmeurer
7ceed92ac0 [builtins] Introduce proper Float64Log1p operator.
Import base::ieee754::log1p() from fdlibm and introduce a Float64Log1p
TurboFan operator based on that, similar to what we do for Float64Log.
Rewrite Math.log1p() as TurboFan builtin and use that operator to also
inline Math.log1p() into optimized TurboFan functions.

Also unify the handling of the special IEEE 754 functions somewhat in
the TurboFan backends. At some point we can hopefully express this
completely in the InstructionSelector (once we have an idea what to do
with the ST(0) return issue on IA-32/X87).

Drive-by-fix: Add some more test coverage for the log function.

R=yangguo@chromium.org
BUG=v8:5086,v8:5092

Review-Url: https://codereview.chromium.org/2060743002
Cr-Commit-Position: refs/heads/master@{#36914}
2016-06-13 05:48:02 +00:00
bmeurer
b01622c312 [ieee754] Import ANSIfied msun log from FreeBSD.
Instead of manually adopting the ancient fdlibm sources, import the msun
versions from FreeBSD instead, which were already adopted to ANSI C.
Still under the same copyright.

R=yangguo@chromium.org
BUG=v8:5065,v8:5086

Review-Url: https://codereview.chromium.org/2065473002
Cr-Commit-Position: refs/heads/master@{#36913}
2016-06-13 04:38:18 +00:00
mtrofin
8e1ccba3b0 [turbofan] Retiring Greedy Allocator
We were able to achieve our goals for register allocation independent of
the allocation algorithm. Performance data so far is inconclusive re. the
value of the Greedy algorithm, compared to the particular Linear Scan
implementation we're currently using, and the performance measurement
techniques we currently use are too imprecise to help with this matter.

Retiring the algorithm to lower maintenance and evolution cost (e.g. lower
cost of adding aliasing support). Once we improve benchmarking stability,
and establish a suite sensitive enough for codegen improvement studies,
we may revive the algorithm, should the need arise.

BUG=

Review-Url: https://codereview.chromium.org/2060673002
Cr-Commit-Position: refs/heads/master@{#36912}
2016-06-13 04:24:12 +00:00
mtrofin
8c1ba59aee RelocInfo modes were not propagated when computing
MemoryOperands, on IA32. This needed to be fixed so that we can
compile wasm code before creating instances, since the compiled code
needs to be patched up for memory and globals references.

This surfaces in asm-to-wasm scenarios.

Added testing (rather, enhanced existing tests).
Note patch#1 where we fail on ia32, and patch#2 with the fix.

BUG=v8:5072

Review-Url: https://codereview.chromium.org/2061583002
Cr-Commit-Position: refs/heads/master@{#36911}
2016-06-13 04:21:16 +00:00
bmeurer
35f5b3dca4 Revert of Add a trace-event for each runtime-stats timer (patchset #6 id:100001 of https://codereview.chromium.org/2052523002/ )
Reason for revert:
Seems to break TSAN, see http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/10057

Original issue's description:
> The trace-events will have a high overhead when turned on, but they are in a disabled-by-default category.
>
> As long as the off overhead is negligible, this CL allows us to understand the behavior of V8 rather than its performance at the moment.
>
> BUG=v8:5089
>
> Committed: https://crrev.com/44ec143f26769bd103662643bfeafc7d0834cc90
> Cr-Commit-Position: refs/heads/master@{#36909}

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

Review-Url: https://codereview.chromium.org/2064553002
Cr-Commit-Position: refs/heads/master@{#36910}
2016-06-13 04:21:15 +00:00
fmeawad
44ec143f26 The trace-events will have a high overhead when turned on, but they are in a disabled-by-default category.
As long as the off overhead is negligible, this CL allows us to understand the behavior of V8 rather than its performance at the moment.

BUG=v8:5089

Review-Url: https://codereview.chromium.org/2052523002
Cr-Commit-Position: refs/heads/master@{#36909}
2016-06-12 16:21:16 +00:00
v8-autoroll
2fc6d926c3 Update V8 DEPS.
Rolling v8/build to ea70305807f935b36a930586aa08c66bfc6fbf8d

Rolling v8/tools/mb to 649b5791b19e4ed3df0c5542b23950d34ca8f3e7

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

Review-Url: https://codereview.chromium.org/2063593002
Cr-Commit-Position: refs/heads/master@{#36908}
2016-06-12 03:25:30 +00:00
peria
7a3150d13d Make String::CanMakeExternal ignore the length of new strings.
It is expected that temporarily used strings die while they are
in new heap.  So we can avoid to pay a heavy cost to externalize
them.  If they are used for times, externalization will happen
when they move to an old heap.

BUG=chrmoium:606093

Review-Url: https://codereview.chromium.org/2046933002
Cr-Commit-Position: refs/heads/master@{#36907}
2016-06-11 05:13:08 +00:00
v8-autoroll
3469d72d04 Update V8 DEPS.
Rolling v8/build to e3d91384eb1f9ee5d3a26ad790f87fc51f3cfc61

Rolling v8/tools/clang to 7f07c3fce21f45df52cf39f0f52277d19b7e3573

Rolling v8/tools/mb to ad1b97c34985d6c464b5b74e75c7c9ec9716fec2

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

Review-Url: https://codereview.chromium.org/2057403004
Cr-Commit-Position: refs/heads/master@{#36906}
2016-06-11 03:24:51 +00:00
gsathya
604445b55b Parser: reuse has_extends, instead of doing a check again
Review-Url: https://codereview.chromium.org/2053393004
Cr-Commit-Position: refs/heads/master@{#36905}
2016-06-11 01:22:36 +00:00
jyan
d86458b1bc S390: [stubs] Remove N-argument Hydrogen-based Array constructor stub
Port c8ac0d8693

Original commit message:

    Instead, always tail call to the runtime. Also, cleanup the various versions
    of the runtime call that is used for Array construction fallback. There can be
    only one.

R=danno@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2060483002
Cr-Commit-Position: refs/heads/master@{#36904}
2016-06-10 19:43:44 +00:00