Commit Graph

446 Commits

Author SHA1 Message Date
bmeurer
669cb71e60 Revert of Reland: [modules] Properly initialize declared variables. (patchset #6 id:100001 of https://codereview.chromium.org/2375793002/ )
Reason for revert:
Speculative revert for christmas tree

Original issue's description:
> Reland: [modules] Properly initialize declared variables.
>
> Before evaluating a module, all variables declared at the top-level
> in _any_ of the modules in the dependency graph must be initialized.
> This is observable because a module A can access a variable imported
> from module B (e.g. a function) at a point when module B's body hasn't
> been evaluated yet.
>
> We achieve this by implementing modules internally as generators with
> two states (not initialized, initialized).
>
> R=adamk@chromium.org
> BUG=v8:1569
> CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg
>
> Committed: https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20
> Committed: https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88
> Cr-Original-Commit-Position: refs/heads/master@{#39871}
> Cr-Commit-Position: refs/heads/master@{#39892}

TBR=adamk@chromium.org,mstarzinger@chromium.org,machenbach@chromium.org,neis@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2387593002
Cr-Commit-Position: refs/heads/master@{#39896}
2016-09-30 04:22:41 +00:00
neis
8c52a41158 Reland: [modules] Properly initialize declared variables.
Before evaluating a module, all variables declared at the top-level
in _any_ of the modules in the dependency graph must be initialized.
This is observable because a module A can access a variable imported
from module B (e.g. a function) at a point when module B's body hasn't
been evaluated yet.

We achieve this by implementing modules internally as generators with
two states (not initialized, initialized).

R=adamk@chromium.org
BUG=v8:1569
CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg

Committed: https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20
Review-Url: https://codereview.chromium.org/2375793002
Cr-Original-Commit-Position: refs/heads/master@{#39871}
Cr-Commit-Position: refs/heads/master@{#39892}
2016-09-29 22:24:56 +00:00
machenbach
7496c9de94 Revert of [modules] Properly initialize declared variables. (patchset #5 id:80001 of https://codereview.chromium.org/2375793002/ )
Reason for revert:
Suspect for causing win64 debug problems:
https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20debug/builds/12646

Original issue's description:
> [modules] Properly initialize declared variables.
>
> Before evaluating a module, all variables declared at the top-level
> in _any_ of the modules in the dependency graph must be initialized.
> This is observable because a module A can access a variable imported
> from module B (e.g. a function) at a point when module B's body hasn't
> been evaluated yet.
>
> We achieve this by implementing modules internally as generators with
> two states (not initialized, initialized).
>
> R=adamk@chromium.org
> BUG=v8:1569
>
> Committed: https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20
> Cr-Commit-Position: refs/heads/master@{#39871}

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

Review-Url: https://codereview.chromium.org/2379063002
Cr-Commit-Position: refs/heads/master@{#39873}
2016-09-29 15:10:30 +00:00
neis
f4dfb6fbe1 [modules] Properly initialize declared variables.
Before evaluating a module, all variables declared at the top-level
in _any_ of the modules in the dependency graph must be initialized.
This is observable because a module A can access a variable imported
from module B (e.g. a function) at a point when module B's body hasn't
been evaluated yet.

We achieve this by implementing modules internally as generators with
two states (not initialized, initialized).

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2375793002
Cr-Commit-Position: refs/heads/master@{#39871}
2016-09-29 14:20:56 +00:00
jacob.bramley
4baa8d86f0 [arm] Remove --enable-movw-movt.
This flag was disabled by default, and has been broken for a long time.

BUG=

Review-Url: https://codereview.chromium.org/2374063004
Cr-Commit-Position: refs/heads/master@{#39858}
2016-09-29 10:44:55 +00:00
jacob.bramley
73518a9070 [arm] Clean up use of IsSupported and IsEnabled.
CpuFeatures::IsSupported(feature) indicates that the feature is
available on the target. AssemblerBase::IsEnabled(feature) indicates
that we've checked for support (using CpuFeatureScope). The main benefit
is that we can test on (for example) ARMv8, but have some assurance that
we won't generate ARMv8 instructions on ARMv7 targets.

This patch simply cleans up the usage, which had become inconsistent.
The instruction emission functions now check not only that their
dependent features are supported, but also that we've verified that
using CpuFeatureScope.

BUG=

Review-Url: https://codereview.chromium.org/2360243002
Cr-Commit-Position: refs/heads/master@{#39676}
2016-09-23 15:29:22 +00:00
verwaest
7f025eb626 Remove ARGUMENTS_VARIABLE and fix crankshaft to properly detect the arguments object and keep it alive when inlining .apply
BUG=

Review-Url: https://codereview.chromium.org/2367483003
Cr-Commit-Position: refs/heads/master@{#39670}
2016-09-23 14:27:02 +00:00
sashab
e6c1081fe6 Revert of Fix bitfield enums to not trigger upcoming Clang warning (patchset #3 id:40001 of https://codereview.chromium.org/2349153002/ )
Reason for revert:
Causes warning in GCC.

Original issue's description:
> Fix bitfield enums to not trigger upcoming Clang warning
>
> Fix bitfield enums to not trigger upcoming Clang warning regarding
> non-unsigned enum bitfields producing non-portable code.
>
> For more details, see the patch here: https://reviews.llvm.org/D24289
>
> BUG=648462
>
> Committed: https://crrev.com/a81e00d533454a7179f8f954505a8f033e941a8a
> Cr-Commit-Position: refs/heads/master@{#39649}

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

Review-Url: https://codereview.chromium.org/2361013003
Cr-Commit-Position: refs/heads/master@{#39663}
2016-09-23 13:22:41 +00:00
sashab
a81e00d533 Fix bitfield enums to not trigger upcoming Clang warning
Fix bitfield enums to not trigger upcoming Clang warning regarding
non-unsigned enum bitfields producing non-portable code.

For more details, see the patch here: https://reviews.llvm.org/D24289

BUG=648462

Review-Url: https://codereview.chromium.org/2349153002
Cr-Commit-Position: refs/heads/master@{#39649}
2016-09-23 02:08:54 +00:00
jgruber
4f5695229e [d8] Fix the shared-library build
This commit ensures that the d8 shared library build uses the same logic as
the standard static build by exporting relevant functions and classes.

BUG=chromium:646337

Committed: https://crrev.com/2c10ca8086a4d595ecf9aa843d2031b068470d65
Review-Url: https://codereview.chromium.org/2342563002
Cr-Original-Commit-Position: refs/heads/master@{#39503}
Cr-Commit-Position: refs/heads/master@{#39547}
2016-09-20 12:06:54 +00:00
machenbach
298ee9cde1 Revert of [d8] Fix the shared-library build (patchset #12 id:20002 of https://codereview.chromium.org/2342563002/ )
Reason for revert:
Unblocking roll

Original issue's description:
> [d8] Fix the shared-library build
>
> This commit ensures that the d8 shared library build uses the same logic as
> the standard static build by exporting relevant functions and classes.
>
> BUG=chromium:646337
>
> Committed: https://crrev.com/2c10ca8086a4d595ecf9aa843d2031b068470d65
> Cr-Commit-Position: refs/heads/master@{#39503}

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

Review-Url: https://codereview.chromium.org/2356703003
Cr-Commit-Position: refs/heads/master@{#39526}
2016-09-20 07:13:27 +00:00
jgruber
2c10ca8086 [d8] Fix the shared-library build
This commit ensures that the d8 shared library build uses the same logic as
the standard static build by exporting relevant functions and classes.

BUG=chromium:646337

Review-Url: https://codereview.chromium.org/2342563002
Cr-Commit-Position: refs/heads/master@{#39503}
2016-09-19 12:47:22 +00:00
weiliang.lin
e151c66013 [x64] supplement SSE insturctions for SIMD.js
Both legacy and AVX versions

BUG=

Review-Url: https://codereview.chromium.org/2328843003
Cr-Commit-Position: refs/heads/master@{#39327}
2016-09-12 06:25:00 +00:00
marja
e34dfe04ea Include only stuff you need, part 9: variables.h
TBR=bmeurer@chromium.org
BUG=v8:5294

Review-Url: https://codereview.chromium.org/2324783002
Cr-Commit-Position: refs/heads/master@{#39304}
2016-09-09 10:55:50 +00:00
mlippautz
79faa52823 Reland of "[heap] Switch to 500k pages"
This reverts commit 332bd5e94c.

BUG=chromium:636331
R=ulan@chromium.org

Review-Url: https://codereview.chromium.org/2313243002
Cr-Commit-Position: refs/heads/master@{#39237}
2016-09-07 09:43:33 +00:00
machenbach
332bd5e94c Revert of [heap] Switch to 500k pages (patchset #5 id:80001 of https://codereview.chromium.org/2314803002/ )
Reason for revert:
Breaks arm64 nosnap debug:
https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/2178

Original issue's description:
> [heap] Switch to 500k pages
>
> BUG=chromium:636331
> R=ulan@chromium.org
>
> Committed: https://crrev.com/4b618dbf8ec7f0edf377b54b48bf3c852d5e235a
> Cr-Commit-Position: refs/heads/master@{#39220}

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

Review-Url: https://codereview.chromium.org/2312853005
Cr-Commit-Position: refs/heads/master@{#39229}
2016-09-07 06:32:23 +00:00
mlippautz
4b618dbf8e [heap] Switch to 500k pages
BUG=chromium:636331
R=ulan@chromium.org

Review-Url: https://codereview.chromium.org/2314803002
Cr-Commit-Position: refs/heads/master@{#39220}
2016-09-06 17:55:36 +00:00
mlippautz
059b56435a Move kMaxRegularHeapObjectSize into globals
This way we avoid the cyclic dependency between objects.h and heap.h and still
have one definition. Add a static assert that this size is indeed smaller than
the payload of a page.

Follow ups can finally remove the dependency on spaces.h for all heap.h users.

R=ulan@chromium.org,bmeurer@chromium.org,vogelheim@chromium.og

Review-Url: https://codereview.chromium.org/2311203002
Cr-Commit-Position: refs/heads/master@{#39206}
2016-09-06 12:59:37 +00:00
marja
51a3ffd9f1 Include only stuff you need, part 8: Fix debug.h -> liveedit.h.
Rebuilding (after touching certain files) is crazy slow because
includes are out of control.

The (last remaining) offending include path is: ast.h <- liveedit.h <-
debug.h <- src/x64/assembler-whatever-port-inl.h <-
src/macro-assembler.h <- everything possible

With this CL, the rebuild steps needed when touching ast-value-factory.h
drops from 365 to 181.

BUG=v8:5294
TBR=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2316443002
Cr-Commit-Position: refs/heads/master@{#39195}
2016-09-06 09:00:28 +00:00
mlippautz
ce66eec800 [heap] Introduce hard limit for external memory
We introduce, similar to regular heap, a hard and a soft limit for external memory.
- Upon reaching the hard limit we do a full GC. The hard limit is a a delta from
  the size of external memory at last GC.
- Upon reaching the soft limit we start incremental marking. Each further
  AdjustAmountOfExternalMemory will trigger a marking step. The step size depends
  on how far we are away from the hard limit. Further away means we have still
  some wiggle room and the step will be small. Being closer to the hard limit
  makes it more likely to trigger a full GC, so we increase the step size.

BUG=chromium:621829

Review-Url: https://codereview.chromium.org/2256853003
Cr-Commit-Position: refs/heads/master@{#39133}
2016-09-02 12:13:14 +00:00
ishell
281e4d0e34 Remove unused VariableLocation::GLOBAL.
Review-Url: https://codereview.chromium.org/2299973002
Cr-Commit-Position: refs/heads/master@{#39078}
2016-09-01 11:50:25 +00:00
adamk
7516fe1eaa Remove CONST_LEGACY VariableMode
The only remaining use of this VariableMode is for the names of sloppy
named function expressions. This patch instead uses CONST for such
bindings (just as we do in strict mode) and instead marks those
Variables specially. During code generation a new helper method,
Variable::throw_on_const_assignment(), is called to decide whether
to throw or silently ignore the assignment.

Review-Url: https://codereview.chromium.org/2233673003
Cr-Commit-Position: refs/heads/master@{#39052}
2016-08-31 18:50:26 +00:00
jacob.bramley
4ab19135f2 Remove UNALIGNED_ACCESSES.
This has been unused since #38728.

BUG=

Review-Url: https://codereview.chromium.org/2297233002
Cr-Commit-Position: refs/heads/master@{#39050}
2016-08-31 17:28:22 +00:00
epertoso
708f80d243 [interpreter] Make the comparison bytecode handlers collect type feedback.
BUG=v8:5273

Review-Url: https://codereview.chromium.org/2286273002
Cr-Commit-Position: refs/heads/master@{#39006}
2016-08-30 10:21:39 +00:00
jacob.bramley
76ea8f2f95 [arm] Simplify run-time CPU selection.
This replaces the target-selection options (such as "--enable-vfp3")
with a simpler, absolute "--arm-arch" option. This eliminates inferences
and avoids surprising behaviour in impossible situations (such as
"--enable-vfp3 --no-enable-armv7").

The available options are:
    --arm-arch=armv6          ARMv6 + VFPv2
    --arm-arch=armv7          ARMv7 + VFPv3-D32 + NEON
    --arm-arch=armv7+sudiv    ARMv7 + VFPv4-D32 + NEON + SUDIV
    --arm-arch=armv8          ARMv8 (+ all of the above)

For now, the default setting is "armv8", which results in behaviour very
similar to the existing defaults.

BUG=v8:5077

Review-Url: https://codereview.chromium.org/2223433002
Cr-Commit-Position: refs/heads/master@{#39004}
2016-08-30 10:02:23 +00:00
hablich
4f8e0fa685 Reland of Fix compiler warnings on "make android_arm" (patchset #1 id:1 of https://codereview.chromium.org/2286163002/ )
Reason for revert:
Roll was unstuck before the revert landed => reland

Original issue's description:
> Revert of Fix compiler warnings on "make android_arm" (patchset #1 id:1 of https://codereview.chromium.org/2264283007/ )
>
> Reason for revert:
> Speculative revert because of roll blocker https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/builds/2241
>
> Original issue's description:
> > Fix compiler warnings on "make android_arm"
> >
> > Committed: https://crrev.com/3e809a6129d0097529c885579ac46e4acf4e99f6
> > Cr-Commit-Position: refs/heads/master@{#38937}
>
> TBR=bmeurer@chromium.org,jkummerow@chromium.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
>
> Committed: https://crrev.com/d992c1f52f116930239ed90cc033442047e789b4
> Cr-Commit-Position: refs/heads/master@{#38961}

TBR=bmeurer@chromium.org,jkummerow@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/2285113002
Cr-Commit-Position: refs/heads/master@{#38962}
2016-08-28 21:03:32 +00:00
hablich
d992c1f52f Revert of Fix compiler warnings on "make android_arm" (patchset #1 id:1 of https://codereview.chromium.org/2264283007/ )
Reason for revert:
Speculative revert because of roll blocker https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/builds/2241

Original issue's description:
> Fix compiler warnings on "make android_arm"
>
> Committed: https://crrev.com/3e809a6129d0097529c885579ac46e4acf4e99f6
> Cr-Commit-Position: refs/heads/master@{#38937}

TBR=bmeurer@chromium.org,jkummerow@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.

Review-Url: https://codereview.chromium.org/2286163002
Cr-Commit-Position: refs/heads/master@{#38961}
2016-08-28 20:58:37 +00:00
jkummerow
3e809a6129 Fix compiler warnings on "make android_arm"
Review-Url: https://codereview.chromium.org/2264283007
Cr-Commit-Position: refs/heads/master@{#38937}
2016-08-26 09:53:55 +00:00
heimbuef
955606506c Better pack fields in Variable
Used a BitField to for Variable fields instead of relying on the compiler, saving some memory probably.
This reduces sizeof(Variable) from 64 to 40 on x64

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2257493002
Cr-Commit-Position: refs/heads/master@{#38891}
2016-08-25 08:46:16 +00:00
verwaest
920f5fcd1e Annotate ScopeType with uint8_t
BUG=v8:5209

Review-Url: https://codereview.chromium.org/2270213002
Cr-Commit-Position: refs/heads/master@{#38853}
2016-08-24 08:49:57 +00:00
verwaest
4b7dc57f0a There are only 2 language modes, not 3
Use bool is_strict_ to encode language_mode in scopes using a single bit.

BUG=

Review-Url: https://codereview.chromium.org/2261463002
Cr-Commit-Position: refs/heads/master@{#38724}
2016-08-18 15:57:11 +00:00
hablich
8fd0ce04e5 Revert of There are only 2 language modes, not 3 (patchset #4 id:60001 of https://codereview.chromium.org/2250703003/ )
Reason for revert:
Breaks ARM and MIPS builds e.g. https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20debug%20builder/builds/2479/steps/compile/logs/stdio

Original issue's description:
> There are only 2 language modes, not 3
>
> BUG=
>
> Committed: https://crrev.com/39764ba293412adde99a77a66d0750695312e006
> Cr-Commit-Position: refs/heads/master@{#38704}

TBR=neis@chromium.org,marja@chromium.org,verwaest@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/2257133002
Cr-Commit-Position: refs/heads/master@{#38714}
2016-08-18 12:06:14 +00:00
hablich
8fdf6031a5 Revert of Replace LANGUAGE_END with LAST_LANGUAGE_MODE (patchset #1 id:1 of https://codereview.chromium.org/2257703003/ )
Reason for revert:
Needed to land revert https://codereview.chromium.org/2257133002/

Original issue's description:
> Replace LANGUAGE_END with LAST_LANGUAGE_MODE
>
> BUG=
>
> Committed: https://crrev.com/9324efca85710ebb14f21ef8476447e21cbe3f35
> Cr-Commit-Position: refs/heads/master@{#38707}

TBR=neis@chromium.org,marja@chromium.org,verwaest@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/2259853002
Cr-Commit-Position: refs/heads/master@{#38713}
2016-08-18 12:05:08 +00:00
verwaest
9324efca85 Replace LANGUAGE_END with LAST_LANGUAGE_MODE
BUG=

Review-Url: https://codereview.chromium.org/2257703003
Cr-Commit-Position: refs/heads/master@{#38707}
2016-08-18 10:20:21 +00:00
verwaest
39764ba293 There are only 2 language modes, not 3
BUG=

Review-Url: https://codereview.chromium.org/2250703003
Cr-Commit-Position: refs/heads/master@{#38704}
2016-08-18 08:59:12 +00:00
verwaest
4484bb41b5 Introduce ModuleScope subclass of DeclarationScope
This moves the module_descriptor_ field to that subclass, as well as other module-only methods.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2252223002
Cr-Commit-Position: refs/heads/master@{#38703}
2016-08-18 08:51:05 +00:00
hablich
e7ccf0c297 Revert of Better pack fields in Variable (patchset #1 id:1 of https://codereview.chromium.org/2253513002/ )
Reason for revert:
Revert: Breaks ARM build: https://uberchromegw.corp.google.com/i/client.v8.ports/builders/V8%20Arm%20-%20builder/builds/2999

Original issue's description:
> Better pack fields in Variable
>
> This reduces sizeof(Variable) from 64 to 40 on x64
>
> BUG=v8:5209
>
> Committed: https://crrev.com/d84343568047c8621a6b8f88f20a7f34586321b8
> Cr-Commit-Position: refs/heads/master@{#38659}

TBR=marja@chromium.org,jkummerow@chromium.org,verwaest@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5209

Review-Url: https://codereview.chromium.org/2249203002
Cr-Commit-Position: refs/heads/master@{#38666}
2016-08-16 18:21:54 +00:00
verwaest
d843435680 Better pack fields in Variable
This reduces sizeof(Variable) from 64 to 40 on x64

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2253513002
Cr-Commit-Position: refs/heads/master@{#38659}
2016-08-16 13:06:26 +00:00
rmcilroy
160d0a1803 [Parser] Remove Variable::is_possibly_eval.
Removes Variable::is_possibly_eval() and instead stores whether
a call is possibly eval in the Call node's bitfield.

Also removes HandleDereferenceMode since it's no longer used.

BUG=v8:5203

Review-Url: https://codereview.chromium.org/2242583003
Cr-Commit-Position: refs/heads/master@{#38633}
2016-08-15 10:59:18 +00:00
epertoso
63516a8c60 [interpreter] Collect type feedback in Add, Mul, Div and Mod.
Introduces code stubs to collect type feedback for the Add, Mul, Div and Mod operations in the interpreter, and modifies the BytecodeGraphBuilder to make use of it.

BUG=v8:5273
LOG=N

Review-Url: https://codereview.chromium.org/2224343002
Cr-Commit-Position: refs/heads/master@{#38543}
2016-08-10 14:34:00 +00:00
rmcilroy
09e921d4c8 [Interpreter] Avoid dereferencing handles on BytecodeGenerator for AST operations.
Updates a number of AST operations to avoid dereferencing handles
such that they can safely be called off-thread. Also adds a
HandleDereferenceMode argument to some operations where handles are
compared. If handle dereferencing is allowed, the handles are compared
directly, if not then their locations are compared (which relies on the
handles being created in a CanonicalHandleScope).

BUG=v8:5203
TBR=adamk@chromium.org

Review-Url: https://codereview.chromium.org/2223523002
Cr-Commit-Position: refs/heads/master@{#38526}
2016-08-10 09:33:20 +00:00
mythria
26e2d16b8f [Interpreter] Collect type feedback for subtract operation and pass it to turbofan.
Collect type feedback for subtract operation in interpreter. Also use it in
bytecode-graph-bulder to set the correct Hint for subtract operation.

BUG=v8:5273
LOG=N

Review-Url: https://codereview.chromium.org/2221833002
Cr-Commit-Position: refs/heads/master@{#38467}
2016-08-09 06:49:17 +00:00
neis
4df91581d1 [modules] Introduce new VariableLocation for module imports/exports.
Introduces a new VariableLocation MODULE for variables that live in a
module's export table.  Scope analysis sets this for the approriate variables.
Not yet supported by any backend.

Also, treats all imports as CONST bindings (including namespace imports), rather
than having new special variable modes.

BUG=

Review-Url: https://codereview.chromium.org/2199283002
Cr-Commit-Position: refs/heads/master@{#38426}
2016-08-08 09:49:27 +00:00
verwaest
ff1c3cdb18 Separate Scope into DeclarationScope and Scope
This reduces peak zone memory usage by ~10% on codeload and ~5% on mandreel.

BUG=v8:5209

Committed: https://crrev.com/2648162dcfff622f8587cea2faa8c3af56456968
Review-Url: https://codereview.chromium.org/2209573002
Cr-Original-Commit-Position: refs/heads/master@{#38367}
Cr-Commit-Position: refs/heads/master@{#38390}
2016-08-05 14:34:04 +00:00
machenbach
2b6675c350 Revert of Separate Scope into DeclarationScope and Scope (patchset #13 id:240001 of https://codereview.chromium.org/2209573002/ )
Reason for revert:
[Sheriff] Make leak checker unhappy:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/10959

Original issue's description:
> Separate Scope into DeclarationScope and Scope
>
> This reduces peak zone memory usage by ~10% on codeload and ~5% on mandreel.
>
> BUG=v8:5209
>
> Committed: https://crrev.com/2648162dcfff622f8587cea2faa8c3af56456968
> Cr-Commit-Position: refs/heads/master@{#38367}

TBR=marja@chromium.org,mstarzinger@chromium.org,ahaas@chromium.org,adamk@chromium.org,verwaest@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5209

Review-Url: https://codereview.chromium.org/2212383003
Cr-Commit-Position: refs/heads/master@{#38380}
2016-08-05 12:37:23 +00:00
verwaest
2648162dcf Separate Scope into DeclarationScope and Scope
This reduces peak zone memory usage by ~10% on codeload and ~5% on mandreel.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2209573002
Cr-Commit-Position: refs/heads/master@{#38367}
2016-08-05 10:17:54 +00:00
verwaest
d454e6cc59 Shuffle fields around in Scope to save more zone memory
This makes the debug-only scope-name actually debug-only-allocated, replaces num_vars_ usages by variables_.occupancy, and shuffles fields around in the scope class for better packing.

This reduces sizeof(i::Scope) from 360 to 328 bytes on x64.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2201763004
Cr-Commit-Position: refs/heads/master@{#38210}
2016-08-01 13:27:24 +00:00
bjaideep
9b4f8d1951 PPC: Set CodeRange constants correctly for PPC Linux
The OS page size for PPC linux is 64KB. The page size for
paged spaces on PPC linux is set to 4MB. kCodeRangeAreaAlignment
is set to OS page size(64KB) and kMinimumCodeRangeSize is set to the
size of 3 pages (12MB). This issue was exposed with testcase
test-spaces/Regress3540 which used kMinimumCodeRangeSize.

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

BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2187833002
Cr-Commit-Position: refs/heads/master@{#38180}
2016-07-29 14:27:59 +00:00
jacob.bramley
cc00ba2df2 [arm] Clean up the use of UNALIGNED_ACCESSES.
All supported ARM targets support unaligned accesses for integer
accesses. This patch removes the remnants of support for older targets.

BUG=v8:5077

Review-Url: https://codereview.chromium.org/2184823002
Cr-Commit-Position: refs/heads/master@{#38099}
2016-07-27 13:28:02 +00:00
balazs.kilvady
d30070d322 Fix 'Fix [turbofan] Prevent storing signalling NaNs into holey double arrays.'
Port 52f2ceb052

Original commit message:
On MIPS different signaling NaN values must be used for hardware and simulator targets, even at snapshot generation when always simulator is used.

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=
TEST=mjsunit/compiler/regress-store-holey-double-array

Review-Url: https://codereview.chromium.org/2188433002
Cr-Commit-Position: refs/heads/master@{#38090}
2016-07-27 10:57:14 +00:00