platform/upstream/v8.git
9 years agoSplit off a separate --harmony_sloppy_let flag
littledan [Sat, 25 Jul 2015 00:05:08 +0000 (17:05 -0700)]
Split off a separate --harmony_sloppy_let flag

--harmony_sloppy includes behavior to turn on sloppy mode lexical
bindings. Before this patch, it also included a way to parse let
which is likely web-incompatible (let is disallowed as an
identifier). This patch splits off the let parsing from the more
general block scoping code, so that block scoping can be developed
independently.

R=adamk
LOG=N
BUG=v8:3305

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

Cr-Commit-Position: refs/heads/master@{#29855}

9 years agoMake dates default to the local timezone if none specified
hichris123 [Fri, 24 Jul 2015 17:19:33 +0000 (10:19 -0700)]
Make dates default to the local timezone if none specified

In ES5, dates were supposed to default to UTC if no timezone was specified. However, this changed in ES6, which specified that dates should be in the local timezone if no timezone was specified. This CL updates our behavior to match that part of the ES6 spec.

BUG=chromium:391730, v8:4242
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#29854}

9 years agoDisable failing simdjs tests.
bbudge [Fri, 24 Jul 2015 15:03:48 +0000 (08:03 -0700)]
Disable failing simdjs tests.
These benchmarks are not updated to the latest spec and polyfill.

R=machenbach@chromium.org

LOG=N
BUG=v8:4124

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

Cr-Commit-Position: refs/heads/master@{#29853}

9 years ago[interpreter] A couple of minor tweaks to BytecodeArray.
rmcilroy [Fri, 24 Jul 2015 14:56:26 +0000 (07:56 -0700)]
[interpreter] A couple of minor tweaks to BytecodeArray.

 - Ensure frame_size is always set during allocation.
 - Add DCHECKs that frame_size is a valid value
 - Remove locals_count, which we don't need yet (possibly every)
 - Add a newline at the end of BytecodeArray::Dissassemble
   for each bytecode.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29852}

9 years agoRemove remnants of INTERNAL variable handling from Scope
rossberg [Fri, 24 Jul 2015 14:48:12 +0000 (07:48 -0700)]
Remove remnants of INTERNAL variable handling from Scope

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29851}

9 years agoDon't try to get the mark bits of the one ptr filler object
jochen [Fri, 24 Jul 2015 14:36:32 +0000 (07:36 -0700)]
Don't try to get the mark bits of the one ptr filler object

BUG=chromium:???
LOG=n
R=mlippautz@chromium.org,hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29850}

9 years agoReland^2 "Enable loads and stores to global vars through property cell shortcuts...
bmeurer [Fri, 24 Jul 2015 14:23:03 +0000 (07:23 -0700)]
Reland^2 "Enable loads and stores to global vars through property cell shortcuts installed into parent script context".

This reverts commit 362b378501ac2220655e16f49c6d1aa734e657f4.

R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29849}

9 years agoDebugger: correctly redirect eval code.
yangguo [Fri, 24 Jul 2015 14:14:10 +0000 (07:14 -0700)]
Debugger: correctly redirect eval code.

This also allows us to not always compile for debugging when debug is active.

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

Cr-Commit-Position: refs/heads/master@{#29848}

9 years agoVectorICs: VisitClassLiteral needs adjustment for IC slot usage.
mvstanton [Fri, 24 Jul 2015 14:08:29 +0000 (07:08 -0700)]
VectorICs: VisitClassLiteral needs adjustment for IC slot usage.

Also, generic lowering for keyed stores needs to handle the case when
there is no IC slot available (it can use the generic keyed store).

BUG=
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29847}

9 years agoDebugger: always include deoptimization support for debug code.
yangguo [Fri, 24 Jul 2015 13:43:38 +0000 (06:43 -0700)]
Debugger: always include deoptimization support for debug code.

R=mstarzinger@chromium.org
BUG=chromium:513496
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29846}

9 years agoFind right scope associated with prologue
rossberg [Fri, 24 Jul 2015 13:08:12 +0000 (06:08 -0700)]
Find right scope associated with prologue

R=mstarzinger@chromium.org
BUG=513474,513475,513611,513612
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29845}

9 years ago[mips] Fix Load/StoreGlobalContext stubs.
bmeurer [Fri, 24 Jul 2015 12:37:07 +0000 (05:37 -0700)]
[mips] Fix Load/StoreGlobalContext stubs.

Fix invalid tail calls and wrong context register.

R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29844}

9 years ago[Interpreter] Add BytecodeArray class and add to SharedFunctionInfo.
oth [Fri, 24 Jul 2015 12:02:41 +0000 (05:02 -0700)]
[Interpreter] Add BytecodeArray class and add to SharedFunctionInfo.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29843}

9 years agoDebugger: fix deoptimizing inlined function.
yangguo [Fri, 24 Jul 2015 10:37:37 +0000 (03:37 -0700)]
Debugger: fix deoptimizing inlined function.

BUG=v8:4320
LOG=N
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29842}

9 years agoExtract function to compute mutator utilization.
ulan [Fri, 24 Jul 2015 10:31:20 +0000 (03:31 -0700)]
Extract function to compute mutator utilization.

This function will be used later instead of HasLowAllocationRate
to decide how many pages to compact.

BUG=chromium:502247
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#29841}

9 years agoMove Full-codegen into its own folder.
yangguo [Fri, 24 Jul 2015 10:11:46 +0000 (03:11 -0700)]
Move Full-codegen into its own folder.

R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29840}

9 years agoX87: [stubs] Optimize LoadGlobalViaContextStub and StoreGlobalViaContextStub.
chunyang.dai [Fri, 24 Jul 2015 10:08:47 +0000 (03:08 -0700)]
X87:  [stubs] Optimize LoadGlobalViaContextStub and StoreGlobalViaContextStub.

port d6ee366d5c5aef7c6bc550889a33520058b4e33a (r29834).

original commit message:

    This is the initial round of optimizations for the
    LoadGlobalViaContextStub and StoreGlobalViaContextStub, basically
    turning them into platform code stubs to avoid the Crankshaft overhead
    in the fast case, and making the runtime interface cheaper.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29839}

9 years agoX87: [interpreter] Add basic framework for bytecode handler code generation.
chunyang.dai [Fri, 24 Jul 2015 10:03:11 +0000 (03:03 -0700)]
X87: [interpreter] Add basic framework for bytecode handler code generation.

port 7877c4e0c77b5c2b97678406eab7e9ad6eba4a4d (r29814).

original commit message:

    Adds basic support for generation of interpreter bytecode handler code
    snippets. The InterpreterAssembler class exposes a set of low level,
    interpreter specific operations which can be used to build a Turbofan
    graph. The Interpreter class generates a bytecode handler snippet for
    each bytecode by assembling operations using an InterpreterAssembler.

    Currently only two simple bytecodes are supported: LoadLiteral0 and Return.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29838}

9 years agoX87: Unify "runtime-style" IC functions with Runtime intrinsics
chunyang.dai [Fri, 24 Jul 2015 09:58:47 +0000 (02:58 -0700)]
X87: Unify "runtime-style" IC functions with Runtime intrinsics

port bc8041dc2b4c8431c5c2476496acd3b7b8b3f61e (r29811).

original commit message:

    Previous to this CL, ICs used a slightly different code idiom
    to get to C++ code from generated code than runtime intrinsics,
    using an IC_Utility class that in essence provided exactly
    the same functionality as Runtime::FunctionForId, but in its
    own quirky way.

    This CL unifies the two mechanisms, folding IC_Utility
    away by making all IC entry points in C++ code, e.g. IC
    miss handlers, full-fledged runtime intrinsics. This makes
    it possible to eliminate a bunch of ad-hoc declarations and
    adapters that the IC system had to needlessly re-invent.

    As a bonus and the original reason for this yak-shave:
    IC-related C++ runtime functions are now callable from
    TurboFan.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29837}

9 years agoX87: HydrogenCodeStubs consume stack arguments via descriptor.
chunyang.dai [Fri, 24 Jul 2015 09:57:39 +0000 (02:57 -0700)]
X87: HydrogenCodeStubs consume stack arguments via descriptor.

port 3334b830a512eda1f8eed678a0e6fda52b23472a (r20813).

original commit message:

    HydrogenCodeStubs consume stack arguments via descriptor.

    All of this is controlled by the CallDescriptor. It's simply the case
    that if you specify less registers than the function arity calls for,
    the rest are assumed to be on the stack.

    Bailout handlers accept these constant stack arguments too.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29836}

9 years agoRevert of Revert "In RegExp, lastIndex is read with ToLength, not ToInteger" (patchse...
machenbach [Fri, 24 Jul 2015 08:25:59 +0000 (01:25 -0700)]
Revert of Revert "In RegExp, lastIndex is read with ToLength, not ToInteger" (patchset #1 id:1 of https://codereview.chromium.org/1243053005/)

Reason for revert:
[Sheriff] This causes a breakage with custom snapshot (bisected locally):
http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/1190

Original issue's description:
> Revert "In RegExp, lastIndex is read with ToLength, not ToInteger"
>
> $toLength is slow, causing a 3.8%-8% regression in the Octane RegExp
> benchmark. Reverting this patch brings it back up. To make this change,
> we'll need a faster implementation fo $toLength.
>
> BUG=chromium:513160
> LOG=Y
> R=adamk
>
> Committed: https://crrev.com/477d651c6a978bdf34954048a235895c62dab0ac
> Cr-Commit-Position: refs/heads/master@{#29830}

TBR=adamk@chromium.org,littledan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:513160

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

Cr-Commit-Position: refs/heads/master@{#29835}

9 years ago[stubs] Optimize LoadGlobalViaContextStub and StoreGlobalViaContextStub.
bmeurer [Fri, 24 Jul 2015 07:16:46 +0000 (00:16 -0700)]
[stubs] Optimize LoadGlobalViaContextStub and StoreGlobalViaContextStub.

This is the initial round of optimizations for the
LoadGlobalViaContextStub and StoreGlobalViaContextStub, basically
turning them into platform code stubs to avoid the Crankshaft overhead
in the fast case, and making the runtime interface cheaper.

R=ishell@chromium.org
BUG=chromium:510694
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29834}

9 years agoWhitespace change to check git quota issues.
Michael Achenbach [Fri, 24 Jul 2015 06:48:32 +0000 (08:48 +0200)]
Whitespace change to check git quota issues.

Cr-Commit-Position: refs/heads/master@{#29833}

9 years agoWhitespace change to check git quota issues.
Michael Achenbach [Fri, 24 Jul 2015 06:28:54 +0000 (08:28 +0200)]
Whitespace change to check git quota issues.

Cr-Commit-Position: refs/heads/master@{#29832}

9 years agoX87: Eliminate redundant descriptor ElementTransitionAndStoreDescriptor.
chunyang.dai [Fri, 24 Jul 2015 06:22:12 +0000 (23:22 -0700)]
X87: Eliminate redundant descriptor ElementTransitionAndStoreDescriptor.

port 26ffee2c718308bb85be072ed32479e4aa8e7e6b (r29789).

original commit message:

    It's just the same as StoreTransitionDescriptor.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29831}

9 years agoRevert "In RegExp, lastIndex is read with ToLength, not ToInteger"
littledan [Fri, 24 Jul 2015 06:21:08 +0000 (23:21 -0700)]
Revert "In RegExp, lastIndex is read with ToLength, not ToInteger"

$toLength is slow, causing a 3.8%-8% regression in the Octane RegExp
benchmark. Reverting this patch brings it back up. To make this change,
we'll need a faster implementation fo $toLength.

BUG=chromium:513160
LOG=Y
R=adamk

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

Cr-Commit-Position: refs/heads/master@{#29830}

9 years agoUpdate V8 DEPS.
v8-autoroll [Fri, 24 Jul 2015 06:20:03 +0000 (23:20 -0700)]
Update V8 DEPS.

Rolling v8/tools/clang to 89e7efc0e2c12578ed7217fcf176ec1a4e567b2a

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29829}

9 years agoX87: Fix pushing of register in CallConstructStub outside frame.
chunyang.dai [Fri, 24 Jul 2015 06:18:57 +0000 (23:18 -0700)]
X87: Fix pushing of register in CallConstructStub outside frame.

port 1f295980b7ac309dcef732088ae363722277a408 (r29787).

original commit message:

    This fixes a recent regression where the register holding the original
    receiver was pushed onto the stack before the internal frame within the
    CallStubInRecordCallTarget helper was created. That in turn confused
    the stack walker when allocations in these stubs failed.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29828}

9 years ago[build] Disable linker threading in LTO builds, as it causes intermittent link failures.
pcc [Fri, 24 Jul 2015 06:17:52 +0000 (23:17 -0700)]
[build] Disable linker threading in LTO builds, as it causes intermittent link failures.

BUG=chromium:513074
R=bmeurer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29827}

9 years agoAdding CHECKED_OUT_VERSION to .gitignore.
bradnelson [Fri, 24 Jul 2015 06:16:47 +0000 (23:16 -0700)]
Adding CHECKED_OUT_VERSION to .gitignore.

Adding CHECKED_OUT_VERSION in test/simdjs so that
the bots don't revert and redownload each time.

LOG=N
BUG=None
TEST=None
R=littledan@chromium.org,machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29826}

9 years agoconvert a bunch of DCHECKs to STATIC_ASSERT
mostynb [Thu, 23 Jul 2015 23:34:52 +0000 (16:34 -0700)]
convert a bunch of DCHECKs to STATIC_ASSERT

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

Cr-Commit-Position: refs/heads/master@{#29825}

9 years agoFix d8 prompt after readline removal
Adam Klein [Thu, 23 Jul 2015 19:26:50 +0000 (12:26 -0700)]
Fix d8 prompt after readline removal

TBR=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29824}

9 years agoPPC: Fix pushing of register in CallConstructStub outside frame.
mbrandy [Thu, 23 Jul 2015 16:59:48 +0000 (09:59 -0700)]
PPC: Fix pushing of register in CallConstructStub outside frame.

Port 1f295980b7ac309dcef732088ae363722277a408

Original commit message:
    This fixes a recent regression where the register holding the original
    receiver was pushed onto the stack before the internal frame within the
    CallStubInRecordCallTarget helper was created. That in turn confused
    the stack walker when allocations in these stubs failed.

R=mstarzinger@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=chromium:512711
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29823}

9 years agoPPC: [interpreter] Add basic framework for bytecode handler code generation.
mbrandy [Thu, 23 Jul 2015 16:35:26 +0000 (09:35 -0700)]
PPC: [interpreter] Add basic framework for bytecode handler code generation.

Port 7877c4e0c77b5c2b97678406eab7e9ad6eba4a4d

Original commit message:
    Adds basic support for generation of interpreter bytecode handler code
    snippets. The InterpreterAssembler class exposes a set of low level,
    interpreter specific operations which can be used to build a Turbofan
    graph. The Interpreter class generates a bytecode handler snippet for
    each bytecode by assembling operations using an InterpreterAssembler.

    Currently only two simple bytecodes are supported: LoadLiteral0 and Return.

R=rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29822}

9 years agoPPC: Unify "runtime-style" IC functions with Runtime intrinsics
mbrandy [Thu, 23 Jul 2015 16:22:59 +0000 (09:22 -0700)]
PPC: Unify "runtime-style" IC functions with Runtime intrinsics

Port bc8041dc2b4c8431c5c2476496acd3b7b8b3f61e

Original commit message:
    Previous to this CL, ICs used a slightly different code idiom
    to get to C++ code from generated code than runtime intrinsics,
    using an IC_Utility class that in essence provided exactly
    the same functionality as Runtime::FunctionForId, but in its
    own quirky way.

    This CL unifies the two mechanisms, folding IC_Utility
    away by making all IC entry points in C++ code, e.g. IC
    miss handlers, full-fledged runtime intrinsics. This makes
    it possible to eliminate a bunch of ad-hoc declarations and
    adapters that the IC system had to needlessly re-invent.

    As a bonus and the original reason for this yak-shave:
    IC-related C++ runtime functions are now callable from
    TurboFan.

R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29821}

9 years agoPPC: HydrogenCodeStubs consume stack arguments via descriptor.
mbrandy [Thu, 23 Jul 2015 16:17:18 +0000 (09:17 -0700)]
PPC: HydrogenCodeStubs consume stack arguments via descriptor.

Port 3334b830a512eda1f8eed678a0e6fda52b23472a

Original commit message;
    All of this is controlled by the CallDescriptor. It's simply the case
    that if you specify less registers than the function arity calls for,
    the rest are assumed to be on the stack.

    Bailout handlers accept these constant stack arguments too.

R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29820}

9 years agoPPC: Eliminate redundant descriptor ElementTransitionAndStoreDescriptor.
mbrandy [Thu, 23 Jul 2015 16:16:12 +0000 (09:16 -0700)]
PPC: Eliminate redundant descriptor ElementTransitionAndStoreDescriptor.

Port 26ffee2c718308bb85be072ed32479e4aa8e7e6b

Original commit message:
    It's just the same as StoreTransitionDescriptor.

R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29819}

9 years ago[interpreter] Fix GCMole warning.
rmcilroy [Thu, 23 Jul 2015 15:57:01 +0000 (08:57 -0700)]
[interpreter] Fix GCMole warning.

Fix GCMole warning from r29814 (7877c4e0c77b5c2b97678406eab7e9ad6eba4a4d).

BUG=v8:4280
LOG=N
NOTREECHECKS=true
TBR=machenbach,mstarzinger

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

Cr-Commit-Position: refs/heads/master@{#29818}

9 years ago[turbofan] Remove deprecated code from RawMachineAssembler.
mstarzinger [Thu, 23 Jul 2015 14:38:49 +0000 (07:38 -0700)]
[turbofan] Remove deprecated code from RawMachineAssembler.

This mostly removes dead code and obsolete special cases from the
RawMachineAssembler::MakeNode helper, that shouldn't be necessary
anymore.

R=rmcilroy@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29817}

9 years agoFix check for a date with a 24th hour
hichris123 [Thu, 23 Jul 2015 14:37:42 +0000 (07:37 -0700)]
Fix check for a date with a 24th hour

According to the ECMA spec, a 24th hour is allowed if the minutes, seconds, and milliseconds are all zero (i.e. it's midnight). Previously, we parsed the date correctly, however, we failed to account in all checks for the possibility of a 24th hour. This CL changes the check to allow a 24th hour if it's exactly midnight.

BUG=chromium:174609
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#29816}

9 years ago[es6] Fix and clean up recognition of simple parameter lists
rossberg [Thu, 23 Jul 2015 14:28:59 +0000 (07:28 -0700)]
[es6] Fix and clean up recognition of simple parameter lists

Gets rid of IsSimpleParameterList predicate.

R=mstarzinger@chromium.org, caitpotter88@gmail.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29815}

9 years ago[interpreter] Add basic framework for bytecode handler code generation.
rmcilroy [Thu, 23 Jul 2015 14:21:26 +0000 (07:21 -0700)]
[interpreter] Add basic framework for bytecode handler code generation.

Adds basic support for generation of interpreter bytecode handler code
snippets. The InterpreterAssembler class exposes a set of low level,
interpreter specific operations which can be used to build a Turbofan
graph. The Interpreter class generates a bytecode handler snippet for
each bytecode by assembling operations using an InterpreterAssembler.

Currently only two simple bytecodes are supported: LoadLiteral0 and Return.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29814}

9 years agoHydrogenCodeStubs consume stack arguments via descriptor.
mvstanton [Thu, 23 Jul 2015 14:00:02 +0000 (07:00 -0700)]
HydrogenCodeStubs consume stack arguments via descriptor.

All of this is controlled by the CallDescriptor. It's simply the case
that if you specify less registers than the function arity calls for,
the rest are assumed to be on the stack.

Bailout handlers accept these constant stack arguments too.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29813}

9 years ago[es6] Make sure temporaries are not allocated in block scope
rossberg [Thu, 23 Jul 2015 13:51:27 +0000 (06:51 -0700)]
[es6] Make sure temporaries are not allocated in block scope

While at it, remove the notion of INTERNAL variables.

@caitp: Took some parts from your CL, since I was blocked on the temp scope bug.

R=mstarzinger@chromium.org
BUG=512574
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29812}

9 years agoUnify "runtime-style" IC functions with Runtime intrinsics
danno [Thu, 23 Jul 2015 13:32:11 +0000 (06:32 -0700)]
Unify "runtime-style" IC functions with Runtime intrinsics

Previous to this CL, ICs used a slightly different code idiom
to get to C++ code from generated code than runtime intrinsics,
using an IC_Utility class that in essence provided exactly
the same functionality as Runtime::FunctionForId, but in its
own quirky way.

This CL unifies the two mechanisms, folding IC_Utility
away by making all IC entry points in C++ code, e.g. IC
miss handlers, full-fledged runtime intrinsics. This makes
it possible to eliminate a bunch of ad-hoc declarations and
adapters that the IC system had to needlessly re-invent.

As a bonus and the original reason for this yak-shave:
IC-related C++ runtime functions are now callable from
TurboFan.

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

Cr-Commit-Position: refs/heads/master@{#29811}

9 years agoRemove readline support from d8.
yangguo [Thu, 23 Jul 2015 13:20:14 +0000 (06:20 -0700)]
Remove readline support from d8.

Nobody seems to use it. A good alternative is rlwrap.

R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29810}

9 years ago[test] Let test runner only use exact matches of tests on the cmd-line.
machenbach [Thu, 23 Jul 2015 13:01:15 +0000 (06:01 -0700)]
[test] Let test runner only use exact matches of tests on the cmd-line.

There are many test names in the v8 code base that prefix
others, which makes it hard to only run those tests.

BUG=chromium:511215
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#29809}

9 years agoRemove code for no longer present external array on any object API
jochen [Thu, 23 Jul 2015 12:48:57 +0000 (05:48 -0700)]
Remove code for no longer present external array on any object API

BUG=v8:3996
R=jarin@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29808}

9 years ago[es6] Some renamings and minor clean-ups in parameter parsing
rossberg [Thu, 23 Jul 2015 11:53:31 +0000 (04:53 -0700)]
[es6] Some renamings and minor clean-ups in parameter parsing

In particular, rename FormalParameterParsingState and friends to FormalParameters etc.

This should not change any logic, but is a preparatory CL for a bunch of follow-up fixes and clean-ups.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29807}

9 years ago[test] Speed up slow stack overflow test.
machenbach [Thu, 23 Jul 2015 11:47:04 +0000 (04:47 -0700)]
[test] Speed up slow stack overflow test.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29806}

9 years agoReduce duplicate code in full-codegen across platforms.
yangguo [Thu, 23 Jul 2015 11:45:57 +0000 (04:45 -0700)]
Reduce duplicate code in full-codegen across platforms.

R=mvstanton@chromium.org

Committed: https://crrev.com/937d4efbf9c399339fdc8e041bec8e80baa7b58f
Cr-Commit-Position: refs/heads/master@{#29798}

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

Cr-Commit-Position: refs/heads/master@{#29805}

9 years agoUse a lock in pages to synchronize sweeper threads to allow others to wait on concurr...
hpayer [Thu, 23 Jul 2015 10:03:00 +0000 (03:03 -0700)]
Use a lock in pages to synchronize sweeper threads to allow others to wait on concurrently swept pages.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29804}

9 years ago[es6] Fix function context check for super and new.target
rossberg [Thu, 23 Jul 2015 09:58:38 +0000 (02:58 -0700)]
[es6] Fix function context check for super and new.target

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

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

Cr-Commit-Position: refs/heads/master@{#29803}

9 years agoRevert of Reduce duplicate code in full-codegen across platforms. (patchset #1 id...
yangguo [Thu, 23 Jul 2015 09:50:28 +0000 (02:50 -0700)]
Revert of Reduce duplicate code in full-codegen across platforms. (patchset #1 id:1 of https://codereview.chromium.org/1255613002/)

Reason for revert:
breaks mips

Original issue's description:
> Reduce duplicate code in full-codegen across platforms.
>
> R=mvstanton@chromium.org
>
> Committed: https://crrev.com/937d4efbf9c399339fdc8e041bec8e80baa7b58f
> Cr-Commit-Position: refs/heads/master@{#29798}

TBR=mvstanton@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#29802}

9 years agoRemove d8's interactive Javascript debugger.
yangguo [Thu, 23 Jul 2015 09:49:19 +0000 (02:49 -0700)]
Remove d8's interactive Javascript debugger.

The code is unmaintained and full of errors...
but this CL wipes them all away.

Nobody seems to use it anyways.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29801}

9 years ago[turbofan] Add some documenting comments to RawMachineAssembler.
mstarzinger [Thu, 23 Jul 2015 09:16:31 +0000 (02:16 -0700)]
[turbofan] Add some documenting comments to RawMachineAssembler.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29800}

9 years ago[turbofan] Remove bloated GraphBuilder base class.
mstarzinger [Thu, 23 Jul 2015 08:25:25 +0000 (01:25 -0700)]
[turbofan] Remove bloated GraphBuilder base class.

Using the GraphBuilder base class forces each node creation to go
through a virtual function dispatch just for the sake of saving the
duplication of the NewNode helper methods. In total that added up to
saving minus (sic!) six lines of code.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29799}

9 years agoReduce duplicate code in full-codegen across platforms.
yangguo [Thu, 23 Jul 2015 08:23:18 +0000 (01:23 -0700)]
Reduce duplicate code in full-codegen across platforms.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29798}

9 years agoRemove RestartFrame from live edit API
yurys [Thu, 23 Jul 2015 07:46:49 +0000 (00:46 -0700)]
Remove RestartFrame from live edit API

There is already non-throwing version FrameMirror.restart and RestartFrame in the livedit-debugger.js just adds a throwing wrapper around it.

Also NEEDS_STEP_IN_PROPERTY_NAME was removed, the client code can decide based on the stack_modified field if "step in" is required.

Chromium side was fixed in https://codereview.chromium.org/1249013002/

BUG=None
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29797}

9 years agoMIPS: Fix simulator data trace for DSLL and BAL/BGEZAL.
Ilija.Pavlovic [Thu, 23 Jul 2015 07:29:57 +0000 (00:29 -0700)]
MIPS: Fix simulator data trace for DSLL and BAL/BGEZAL.

In simulator data trace, DSLL did not print result and
BAL/BGEZAL omitted result from an instruction executed
in delay slot.

TEST=cctest/test-assembler-mips[64]
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29796}

9 years agoFix a -Wsign-compare error under GCC 4.9.2.
paul.lind [Thu, 23 Jul 2015 06:27:04 +0000 (23:27 -0700)]
Fix a -Wsign-compare error under GCC 4.9.2.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29795}

9 years ago[es6] Array.prototype[Symbol.iterator].name should be 'values'
adamk [Thu, 23 Jul 2015 05:50:27 +0000 (22:50 -0700)]
[es6] Array.prototype[Symbol.iterator].name should be 'values'

R=littledan@chromium.org
BUG=v8:4311
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29794}

9 years agoUpdate V8 DEPS.
v8-autoroll [Thu, 23 Jul 2015 05:49:20 +0000 (22:49 -0700)]
Update V8 DEPS.

Rolling v8/tools/clang to 4943801a353f2f58e7268e17803d87cf78f2f732

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29793}

9 years ago[turbofan] Get rid of overly abstract SimplifiedGraphBuilder.
mstarzinger [Wed, 22 Jul 2015 18:28:23 +0000 (11:28 -0700)]
[turbofan] Get rid of overly abstract SimplifiedGraphBuilder.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29792}

9 years ago[turbofan]: Fix tail calls edge cases and add tests
danno [Wed, 22 Jul 2015 18:27:16 +0000 (11:27 -0700)]
[turbofan]: Fix tail calls edge cases and add tests

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

Cr-Commit-Position: refs/heads/master@{#29791}

9 years ago[turbofan] Preserve cached code across GCs.
mstarzinger [Wed, 22 Jul 2015 14:03:59 +0000 (07:03 -0700)]
[turbofan] Preserve cached code across GCs.

This preserves the context-independent entry in an optimized code map
across GCs when the code is considered young (i.e. less than 3 ages).
Note that any context-dependent entry for the same code will still be
flushed immediately when the respective context dies, hence context
lifetime is not increased.

R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29790}

9 years agoEliminate redundant descriptor ElementTransitionAndStoreDescriptor.
mvstanton [Wed, 22 Jul 2015 12:37:14 +0000 (05:37 -0700)]
Eliminate redundant descriptor ElementTransitionAndStoreDescriptor.

It's just the same as StoreTransitionDescriptor.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29789}

9 years agoAllow for optimized code map to have zero entries.
mstarzinger [Wed, 22 Jul 2015 11:46:04 +0000 (04:46 -0700)]
Allow for optimized code map to have zero entries.

This allows the optimized code map to contain no context-dependent
entries, but still hold one context-independent entry. This is a
precursor to extending the lifetime of the context-independent entry.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29788}

9 years agoFix pushing of register in CallConstructStub outside frame.
mstarzinger [Wed, 22 Jul 2015 11:10:49 +0000 (04:10 -0700)]
Fix pushing of register in CallConstructStub outside frame.

This fixes a recent regression where the register holding the original
receiver was pushed onto the stack before the internal frame within the
CallStubInRecordCallTarget helper was created. That in turn confused
the stack walker when allocations in these stubs failed.

R=mvstanton@chromium.org
BUG=chromium:512711
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29787}

9 years agoStore offset between fixed typed array base and data start in object
jochen [Wed, 22 Jul 2015 10:25:51 +0000 (03:25 -0700)]
Store offset between fixed typed array base and data start in object

The layout of fixed typed array base is then capable of handling
external typed arrays as well. In a follow-up CL, I'll delete external
typed arrays, and use fixed typed array base instead

BUG=v8:3996
R=jarin@chromium.org,mstarzinger@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29786}

9 years ago[arm] Fix pushing of stale register in CallConstructStub.
mstarzinger [Wed, 22 Jul 2015 08:49:34 +0000 (01:49 -0700)]
[arm] Fix pushing of stale register in CallConstructStub.

This fixes a recent regression where the register usually holding the
original receiver was pushed onto the stack even when the stub was not
compiled for super calls (i.e. IsSuperConstructorCall). This led to
untagged values being present in the stack frame.

R=jacob.bramley@arm.com
BUG=chromium:512573
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29785}

9 years agoDebugger: fix crash when debugger is enabled between parsing and compiling.
yangguo [Wed, 22 Jul 2015 07:37:21 +0000 (00:37 -0700)]
Debugger: fix crash when debugger is enabled between parsing and compiling.

The background parser checks for debugger state in its constructor. This
is not good enough, since the debugger state may change afterwards, but
before compiling takes place. As the background parser can only parse
lazily, this could mean that due to debugging, we try to eagerly compile
an inner function we have not eagerly parsed.

R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29784}

9 years agoUnit tests for the live range conflict detection mechanism (CoalescedLiveRanges)...
mtrofin [Wed, 22 Jul 2015 04:50:16 +0000 (21:50 -0700)]
Unit tests for the live range conflict detection mechanism (CoalescedLiveRanges) in the Greedy Allocator.

Consolidated conflict detection and traversal logic in CoalescedLiveRanges to avoid duplication in both code and testing. In addition, this change achieves better separation between CoalescedLiveRanges and other register allocator components, improving testability and maintainability.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29783}

9 years agoUpdate V8 DEPS.
v8-autoroll [Wed, 22 Jul 2015 03:26:32 +0000 (20:26 -0700)]
Update V8 DEPS.

Rolling v8/third_party/android_tools to 6a7921fdbc510e30de5bb38c5dcf9e524713ca6b

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29782}

9 years agoSIMD.js: Update Float32x4 and tests to current spec.
bbudge [Wed, 22 Jul 2015 03:13:53 +0000 (20:13 -0700)]
SIMD.js: Update Float32x4 and tests to current spec.

LOG=N
BUG=v8:4124

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

Cr-Commit-Position: refs/heads/master@{#29781}

9 years agoMake simdjs tests redownload on a revision change.
bradnelson [Tue, 21 Jul 2015 19:02:27 +0000 (12:02 -0700)]
Make simdjs tests redownload on a revision change.

LOG=N
BUG=None
TEST=manual,local
R=bbudge@chromium.org,machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29780}

9 years agoRemove unnecessary coupling between Promise tests and Object.observe
adamk [Tue, 21 Jul 2015 17:16:57 +0000 (10:16 -0700)]
Remove unnecessary coupling between Promise tests and Object.observe

Many mjsunit tests (as well as the promises-aplus adapter scripts) were
using Object.observe simply for microtask-enqueueing purposes. Replaced
such uses with %EnqueueMicrotask.

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

Cr-Commit-Position: refs/heads/master@{#29779}

9 years agoRevert "Directly remove slot buffer entries in deoptimized code objects."
hpayer [Tue, 21 Jul 2015 16:14:33 +0000 (09:14 -0700)]
Revert "Directly remove slot buffer entries in deoptimized code objects."

This reverts commit 80b3f16951251d342ebaf9174872d50e46f048a5.

Revert "Record code slots that may point to evacuation candidate objects after deoptimizing them."

This reverts commit 4621210cfed738b8171b075f816f0c7329489c9d.

BUG=chromium:507840
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29778}

9 years ago[turbofan] Change RawMachineAssembler to take a CallDescriptor instead of a MachineSi...
rmcilroy [Tue, 21 Jul 2015 15:54:16 +0000 (08:54 -0700)]
[turbofan] Change RawMachineAssembler to take a CallDescriptor instead of a MachineSignature.

The InterpreterAssembler needs to specify a specific CallDescriptor type
instead of using the SimplifiedCDescriptor type. This CL makes it possible
to specify the CallDescriptor used by the RawMachineAssembler instead of
specifying a MachineSignature.

Also removes instruction-selector-tester.h which was erroneously resurrected
at some point.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29777}

9 years agoDeclare deleted copy constructor and assignment operator of v8::Global to take const...
ulan [Tue, 21 Jul 2015 15:53:11 +0000 (08:53 -0700)]
Declare deleted copy constructor and assignment operator of v8::Global to take const parameters.

This is required in order for Globals to be stored in STL containers.

Patch from Aaron Link <aaronlink@google.com>

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29776}

9 years agoPPC: perf enhancement: Use larger heap page size on PPC.
dstence [Tue, 21 Jul 2015 15:52:02 +0000 (08:52 -0700)]
PPC: perf enhancement: Use larger heap page size on PPC.

Revisit of https://codereview.chromium.org/910333004.

Use 4MB heap page size over the default of 1MB.

This change provides an improvement of 1.86% on the composite octane
benchmark score on PPC. This is 0.56% more than if --min_semi_space_size=4
was used to specify a 4MB heap page size.

Additionally, two more tests required modification to account for
configurable heap page size.

R=svenpanne@chromium.org, hpayer@chromium.org, danno@chromium.org, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29775}

9 years ago[arm] Address TODO in CallConstructStub::Generate.
mstarzinger [Tue, 21 Jul 2015 14:13:16 +0000 (07:13 -0700)]
[arm] Address TODO in CallConstructStub::Generate.

R=jacob.bramley@arm.com

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

Cr-Commit-Position: refs/heads/master@{#29774}

9 years ago[arm64] Address TODO in CallConstructStub::Generate.
mstarzinger [Tue, 21 Jul 2015 13:24:22 +0000 (06:24 -0700)]
[arm64] Address TODO in CallConstructStub::Generate.

R=jacob.bramley@arm.com

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

Cr-Commit-Position: refs/heads/master@{#29773}

9 years agoARM: make sure that the expected code size is computed in predictable scope.
ulan [Tue, 21 Jul 2015 11:18:22 +0000 (04:18 -0700)]
ARM: make sure that the expected code size is computed in predictable scope.

BUG=v8:4277
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#29772}

9 years agoAlways run the second pass of the phantom callbacks synchronously if --predictable...
epertoso [Tue, 21 Jul 2015 10:52:43 +0000 (03:52 -0700)]
Always run the second pass of the phantom callbacks synchronously if --predictable or --optimize_for_size are set.

R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29771}

9 years agoFix missing "re" module import in GDB support script
aperez [Tue, 21 Jul 2015 09:28:34 +0000 (02:28 -0700)]
Fix missing "re" module import in GDB support script

The gdb-v8-support.py script uses the "re" module to match regular expression,
but it does not import it, resulting in an error when loading the script from
GDB. This patch adds the missing import.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29770}

9 years ago[test] Fix timeouts for simdjs perf tests.
machenbach [Tue, 21 Jul 2015 08:51:55 +0000 (01:51 -0700)]
[test] Fix timeouts for simdjs perf tests.

Also remove deprecated android_arm configs.

TBR=bradnelson@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#29769}

9 years agoAdd scavenger events to GC tracer
mlippautz [Tue, 21 Jul 2015 07:31:27 +0000 (00:31 -0700)]
Add scavenger events to GC tracer

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29768}

9 years ago[d8] Remove deprecated calls from d8-readline
binji [Tue, 21 Jul 2015 03:28:39 +0000 (20:28 -0700)]
[d8] Remove deprecated calls from d8-readline

R=jochen@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29767}

9 years agoUpdate V8 DEPS.
v8-autoroll [Tue, 21 Jul 2015 03:26:32 +0000 (20:26 -0700)]
Update V8 DEPS.

Rolling v8/tools/clang to 33c2e4149926da7262361323a111605877add859

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29766}

9 years agoX87: Debugger: prepare code for debugging on a per-function basis.
chunyang.dai [Tue, 21 Jul 2015 02:52:16 +0000 (19:52 -0700)]
X87: Debugger: prepare code for debugging on a per-function basis.

port 35c28ce0a742e58346d2dea009428cacd442040d (r29758).

original commit message:

    Prior to this patch, we enter a global debug mode whenever a break point
    is set. By entering this mode, all code is deoptimized and activated
    frames are recompiled and redirected to newly compiled debug code.

    After this patch, we only deoptimize/redirect for functions we want to
    debug. Trigger for this is Debug::EnsureDebugInfo, and having DebugInfo
    object attached to the SFI prevents optimization/inlining.

    The result is that we can have optimized code for functions without break
    points alongside functions that do have break points, which are not
    optimized.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29765}

9 years agoPPC: Debugger: prepare code for debugging on a per-function basis.
mbrandy [Mon, 20 Jul 2015 17:20:51 +0000 (10:20 -0700)]
PPC: Debugger: prepare code for debugging on a per-function basis.

Port 35c28ce0a742e58346d2dea009428cacd442040d

Original commit message:
    Prior to this patch, we enter a global debug mode whenever a break point
    is set. By entering this mode, all code is deoptimized and activated
    frames are recompiled and redirected to newly compiled debug code.

    After this patch, we only deoptimize/redirect for functions we want to
    debug. Trigger for this is Debug::EnsureDebugInfo, and having DebugInfo
    object attached to the SFI prevents optimization/inlining.

    The result is that we can have optimized code for functions without break
    points alongside functions that do have break points, which are not
    optimized.

R=yangguo@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:4132
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29764}

9 years ago[turbofan]: Add a context relaxation Reducer
danno [Mon, 20 Jul 2015 17:15:59 +0000 (10:15 -0700)]
[turbofan]: Add a context relaxation Reducer

In many cases, the context that TurboFan's ASTGraphBuilder or subsequent
reduction operations attaches to nodes does not need to be that exact
context, but rather only needs to be one with the same native context,
because it is used internally only to fetch the native context, e.g. for
creating and throwing exceptions.

This reducer recognizes common cases where the context that is specified
for a node can be relaxed to a canonical, less specific one. This
relaxed context can either be the enclosing function's context or a specific
Module or Script context that is explicitly created within the function.

This optimization is especially important for TurboFan-generated code stubs
which use context specialization and inlining to generate optimal code.
Without context relaxation, many extraneous moves are generated to pass
exactly the right context to internal functions like ToNumber and
AllocateHeapNumber, which only need the native context. By turning context
relaxation on, these moves disappear because all these common internal
context uses are unified to the context passed into the stub function, which
is typically already in the correct context register and remains there for
short stubs. It also eliminates the explicit use of a specialized context
constant in the code stub in these cases, which could cause memory leaks.

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

Cr-Commit-Position: refs/heads/master@{#29763}

9 years ago[turbofan] Move workaround with TDZ of 'this' variable.
mstarzinger [Mon, 20 Jul 2015 16:02:08 +0000 (09:02 -0700)]
[turbofan] Move workaround with TDZ of 'this' variable.

Note that this just narrows the existing workaround for any 'this' in
derived constructors (having a temporal dead zone) so that we can still
recognize static cases correctly (i.e. when 'this' is provably outside
or inside the temporal dead zone).

R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29762}

9 years agoTakes the script offset into account when obtaining the column of the message.
epertoso [Mon, 20 Jul 2015 15:56:11 +0000 (08:56 -0700)]
Takes the script offset into account when obtaining the column of the message.

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

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

Cr-Commit-Position: refs/heads/master@{#29761}

9 years agoAdd support for adding an external and a tagged pointer
jochen [Mon, 20 Jul 2015 15:17:53 +0000 (08:17 -0700)]
Add support for adding an external and a tagged pointer

This will be used to compute the base pointer of the new unified
representation for both on-heap and external typed arrays. The idea is
that either the external or the tagged pointer is 0 (although in
practice, if the tagged pointer is non-0, the external pointer will
contain the offset from the start of the on-heap typed array to the data
in the on-heap typed array).

The HAdd is marked as depending on new-space promotion, as the tagged
pointer might move during GC, and so the result of the addition needs to
be recomputed.

BUG=v8:3996
R=jarin@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29760}

9 years agoDon't run the second pass of the pending phantom callbacks if the heap has been torn...
epertoso [Mon, 20 Jul 2015 15:03:51 +0000 (08:03 -0700)]
Don't run the second pass of the pending phantom callbacks if the heap has been torn down.

R=jochen@chromium.org
BUG=511204
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#29759}

9 years agoDebugger: prepare code for debugging on a per-function basis.
yangguo [Mon, 20 Jul 2015 14:53:28 +0000 (07:53 -0700)]
Debugger: prepare code for debugging on a per-function basis.

Prior to this patch, we enter a global debug mode whenever a break point
is set. By entering this mode, all code is deoptimized and activated
frames are recompiled and redirected to newly compiled debug code.

After this patch, we only deoptimize/redirect for functions we want to
debug. Trigger for this is Debug::EnsureDebugInfo, and having DebugInfo
object attached to the SFI prevents optimization/inlining.

The result is that we can have optimized code for functions without break
points alongside functions that do have break points, which are not
optimized.

R=mstarzinger@chromium.org, ulan@chromium.org
BUG=v8:4132
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#29758}

9 years agoFix stack trace printing in d8
jochen [Mon, 20 Jul 2015 14:49:21 +0000 (07:49 -0700)]
Fix stack trace printing in d8

R=yangguo@chromium.org
BUG=chromium:511988
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29757}

9 years ago[strong] Keep language mode consistent
rossberg [Mon, 20 Jul 2015 14:31:30 +0000 (07:31 -0700)]
[strong] Keep language mode consistent

R=mstarzinger@chromium.org
BUG=v8:4312
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29756}