Commit Graph

24403 Commits

Author SHA1 Message Date
paul.lind
567806c787 Add arch OWNERS files to full-codegen dir.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29861}
2015-07-27 06:28:15 +00:00
ishell
156042f7f7 Cross-script variables handling fixed. It was possible to write to read-only global variable.
Review URL: https://codereview.chromium.org/1259853002

Cr-Commit-Position: refs/heads/master@{#29860}
2015-07-27 05:53:05 +00:00
paul.lind
35d6012b9f MIPS64: Fix LoadGlobalViaContextStub
Also make a minor improvement in the mips32 StoreGlobalViaContextStub
and fix some bad comments in the macro-assembler.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29859}
2015-07-26 05:01:54 +00:00
v8-autoroll
2751cddc9d Update V8 DEPS.
Rolling v8/tools/clang to 86b91f8203d8b6cb2dabb8a9c5f2dd95135b4307

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29858}
2015-07-26 03:24:29 +00:00
v8-autoroll
36fe84e430 Update V8 DEPS.
Rolling v8/tools/clang to 101be7d177391384deb7f088aecd1f2d93af918f

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29857}
2015-07-25 03:26:16 +00:00
littledan
024e39613a Class block scoping tests
Class bindings are mutable and lexically scoped, with TDZ semantics.
They may not overlap with var bindings in the same scope. This patch
adds tests for those properties.

R=adamk
BUG=v8:3305
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29856}
2015-07-25 01:59:24 +00:00
littledan
2d2b72f638 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}
2015-07-25 00:05:18 +00:00
hichris123
f06754a8e1 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}
2015-07-24 17:19:52 +00:00
bbudge
a02219e97e 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}
2015-07-24 15:03:55 +00:00
rmcilroy
9bb7b980de [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}
2015-07-24 14:56:34 +00:00
rossberg
fa987b4b63 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}
2015-07-24 14:48:30 +00:00
jochen
3eb91e8aec 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}
2015-07-24 14:36:49 +00:00
bmeurer
440ae014e5 Reland^2 "Enable loads and stores to global vars through property cell shortcuts installed into parent script context".
This reverts commit 362b378501.

R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29849}
2015-07-24 14:23:12 +00:00
yangguo
0cae607ff3 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}
2015-07-24 14:14:33 +00:00
mvstanton
878071af3e 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}
2015-07-24 14:08:52 +00:00
yangguo
cd9ae446ea 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}
2015-07-24 13:43:46 +00:00
rossberg
3e40b64ade 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}
2015-07-24 13:08:32 +00:00
bmeurer
dd1a26de5c [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}
2015-07-24 12:37:17 +00:00
oth
cb6e705686 [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}
2015-07-24 12:03:03 +00:00
yangguo
cc8fa95f7c 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}
2015-07-24 10:37:57 +00:00
ulan
0752abb114 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}
2015-07-24 10:31:32 +00:00
yangguo
3be39a24bf 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}
2015-07-24 10:11:57 +00:00
chunyang.dai
4c6989914e X87: [stubs] Optimize LoadGlobalViaContextStub and StoreGlobalViaContextStub.
port d6ee366d5c (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}
2015-07-24 10:08:54 +00:00
chunyang.dai
c4cd117e2d X87: [interpreter] Add basic framework for bytecode handler code generation.
port 7877c4e0c7 (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}
2015-07-24 10:03:28 +00:00
chunyang.dai
2571c69dcb X87: Unify "runtime-style" IC functions with Runtime intrinsics
port bc8041dc2b (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}
2015-07-24 09:59:07 +00:00
chunyang.dai
1359017f80 X87: HydrogenCodeStubs consume stack arguments via descriptor.
port 3334b830a5 (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}
2015-07-24 09:57:49 +00:00
machenbach
7d02830e74 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}
2015-07-24 08:26:06 +00:00
bmeurer
d6ee366d5c [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}
2015-07-24 07:17:05 +00:00
Michael Achenbach
48d87b57c5 Whitespace change to check git quota issues.
Cr-Commit-Position: refs/heads/master@{#29833}
2015-07-24 06:48:51 +00:00
Michael Achenbach
99ae9b6017 Whitespace change to check git quota issues.
Cr-Commit-Position: refs/heads/master@{#29832}
2015-07-24 06:29:27 +00:00
chunyang.dai
1dfcf3506c X87: Eliminate redundant descriptor ElementTransitionAndStoreDescriptor.
port 26ffee2c71 (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}
2015-07-24 06:22:29 +00:00
littledan
477d651c6a 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}
2015-07-24 06:21:29 +00:00
v8-autoroll
306cde6b0d 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}
2015-07-24 06:20:13 +00:00
chunyang.dai
5cdb1cee4b X87: Fix pushing of register in CallConstructStub outside frame.
port 1f295980b7 (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}
2015-07-24 06:19:11 +00:00
pcc
6d542bfcc2 [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}
2015-07-24 06:18:06 +00:00
bradnelson
84a6db99dc 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}
2015-07-24 06:17:04 +00:00
mostynb
ff5444199a convert a bunch of DCHECKs to STATIC_ASSERT
Review URL: https://codereview.chromium.org/1251593009

Cr-Commit-Position: refs/heads/master@{#29825}
2015-07-23 23:35:14 +00:00
Adam Klein
dfd8115143 Fix d8 prompt after readline removal
TBR=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29824}
2015-07-23 19:27:12 +00:00
mbrandy
c9ca1803ad PPC: Fix pushing of register in CallConstructStub outside frame.
Port 1f295980b7

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}
2015-07-23 17:00:05 +00:00
mbrandy
3144d1f101 PPC: [interpreter] Add basic framework for bytecode handler code generation.
Port 7877c4e0c7

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}
2015-07-23 16:35:45 +00:00
mbrandy
1a57cede12 PPC: Unify "runtime-style" IC functions with Runtime intrinsics
Port bc8041dc2b

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}
2015-07-23 16:23:09 +00:00
mbrandy
f80e686906 PPC: HydrogenCodeStubs consume stack arguments via descriptor.
Port 3334b830a5

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}
2015-07-23 16:17:23 +00:00
mbrandy
6594c09fd3 PPC: Eliminate redundant descriptor ElementTransitionAndStoreDescriptor.
Port 26ffee2c71

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}
2015-07-23 16:16:23 +00:00
rmcilroy
9b032dc985 [interpreter] Fix GCMole warning.
Fix GCMole warning from r29814 (7877c4e0c7).

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

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

Cr-Commit-Position: refs/heads/master@{#29818}
2015-07-23 15:57:12 +00:00
mstarzinger
c00f7dffc1 [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}
2015-07-23 14:38:54 +00:00
hichris123
ea056cbf2d 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}
2015-07-23 14:37:49 +00:00
rossberg
a10e877c3e [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}
2015-07-23 14:29:11 +00:00
rmcilroy
7877c4e0c7 [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}
2015-07-23 14:21:39 +00:00
mvstanton
3334b830a5 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}
2015-07-23 14:00:15 +00:00
rossberg
9ab8bfba7f [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}
2015-07-23 13:51:35 +00:00