Commit Graph

24331 Commits

Author SHA1 Message Date
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
danno
bc8041dc2b 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}
2015-07-23 13:32:26 +00:00
yangguo
8e027195b4 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}
2015-07-23 13:20:31 +00:00
machenbach
3bc1b1346a [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}
2015-07-23 13:01:38 +00:00
jochen
7bedb50f7d 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}
2015-07-23 12:49:21 +00:00
rossberg
dad797993c [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}
2015-07-23 11:53:47 +00:00
machenbach
9c249601f2 [test] Speed up slow stack overflow test.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29806}
2015-07-23 11:47:12 +00:00
yangguo
0fe2fbd173 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}
2015-07-23 11:46:07 +00:00
hpayer
05ec0ff083 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}
2015-07-23 10:03:11 +00:00
rossberg
47d3bb1c0b [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}
2015-07-23 09:58:59 +00:00
yangguo
8de3518e3a 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}
2015-07-23 09:50:34 +00:00
yangguo
cd0015aad0 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}
2015-07-23 09:49:33 +00:00
mstarzinger
af6e874e78 [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}
2015-07-23 09:16:50 +00:00
mstarzinger
0788c98d3b [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}
2015-07-23 08:25:40 +00:00
yangguo
937d4efbf9 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}
2015-07-23 08:23:30 +00:00
yurys
84f8e1af76 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}
2015-07-23 07:46:55 +00:00
Ilija.Pavlovic
a5f5f58014 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}
2015-07-23 07:30:09 +00:00
paul.lind
0eacd754cc 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}
2015-07-23 06:27:15 +00:00
adamk
3a74348e09 [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}
2015-07-23 05:50:47 +00:00
v8-autoroll
a345295605 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}
2015-07-23 05:49:39 +00:00
mstarzinger
1c43c3ae73 [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}
2015-07-22 18:28:37 +00:00
danno
d1a6dfaf4d [turbofan]: Fix tail calls edge cases and add tests
Review URL: https://codereview.chromium.org/1245523002

Cr-Commit-Position: refs/heads/master@{#29791}
2015-07-22 18:27:35 +00:00
mstarzinger
2c07b0d045 [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}
2015-07-22 14:04:08 +00:00