Commit Graph

27021 Commits

Author SHA1 Message Date
jochen
9ec240d00c Double the API call rate threshold for the memory reducer to kick in
Moving Blink from hidden values to private symbols almost doubled the
rate of API calls, as the private symbols API increases the call-depth
scope while the hidden values one didn't.

I manually checked that this fixes the regression on the long running
gmail benchmark but doesn't add new memory reducer GCs on the infinite
scrolling benchmark

BUG=chromium:561325
R=ulan@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32279}
2015-11-25 15:20:13 +00:00
Michael Achenbach
7617c939d6 Whitespace change to test new sp_frame_access coverage.
Cr-Commit-Position: refs/heads/master@{#32278}
2015-11-25 15:05:17 +00:00
jochen
aa9cfc8222 Make whether or not a Code object should be created by masm explicit
We always want to have an Isolate, so just use an extra ctor arg

BUG=2487
R=yangguo@chromium.org,mstarzinger@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32277}
2015-11-25 14:23:56 +00:00
machenbach
87177738ce [test] Skip flaky test for turbofan on windows.
BUG=v8:4573
LOG=n
TBR=mstarzinger@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#32276}
2015-11-25 14:23:08 +00:00
Benedikt Meurer
a6f9670e86 [tools] Unbreak postmortem script.
TBR=machenbach@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#32275}
2015-11-25 14:22:20 +00:00
machenbach
1e82da4b30 [test] Make try-perf script more convenient to use.
Warn if unknown benchmark configurations are triggered.

NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#32274}
2015-11-25 14:00:49 +00:00
bmeurer
2732a6ad44 [es6] Correct parsing of regular expression literal flags.
ES6 section 12.2.8.1 states that flags for regular expression literals
must be checked during parsing and invalid flags are early errors. This
change adapts the Scanner and (Pre)Parser to act according to the spec.

This is also a prerequisite to unify the handling of literal creation
(for Objects, Arrays, Regexps, and at some point Classes).

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32273}
2015-11-25 13:46:43 +00:00
ulan
7a21cdafaf Optimize ClearNonLiveReferences: do not compact prototype transitions in GC.
BUG=chromium:554488
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#32272}
2015-11-25 13:39:13 +00:00
machenbach
e8bfedab96 [test] Add status-file presubmit check.
This loads all test suites and status files to catch subtle
syntax errors. It also checks basic status file integrity
and common mistakes.

NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#32271}
2015-11-25 13:19:33 +00:00
machenbach
95f9f7732f [Ignition] Skip another test.
Started failing after https://codereview.chromium.org/1469313002

NOTRY=true
TBR=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32270}
2015-11-25 13:18:03 +00:00
titzer
9917f3375f Set the constant pool size to 0 on architectures that do not use it.
Turns out we've been putting garbage into code->constant_pool_offset
for quite some time.

R=jkummerow@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32269}
2015-11-25 13:10:33 +00:00
ishell
ebf8ec5c51 Fix JSFunction's in-object properties initialization.
BUG=v8:4572
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#32268}
2015-11-25 12:42:14 +00:00
machenbach
05dda9e27e [test-runner] Make test suite loading more robust.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32267}
2015-11-25 12:21:16 +00:00
jarin
0e84cd470f [turbofan] Require proper typing when inferring machine type from big-boy type.
Review URL: https://codereview.chromium.org/1479503002

Cr-Commit-Position: refs/heads/master@{#32266}
2015-11-25 11:49:42 +00:00
verwaest
066747ea05 Make sure that NormalizeElements and ShouldConvertToFastElements are based on the same values
BUG=v8:4518
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32265}
2015-11-25 11:46:50 +00:00
mstarzinger
3d004eeab2 [interpreter] Switch passing of new.target to register.
This passes the new.target value in a register instead of through a
side-channel via the construct stub. The interpreter entry trampoline
stores this value in a bytecode register so that it can be accessed
directly by the interpreter. The size of the interpreter stack frame
hence grows by one slot.

R=oth@chromium.org
BUG=v8:4544
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32264}
2015-11-25 11:37:28 +00:00
jochen
5335e7d55a Clarify how to replace ForceSet
BUG=none
R=vogelheim@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32263}
2015-11-25 11:17:54 +00:00
ahaas
4f4947898d [turbofan] Implemented the optional Float32RoundUp operator.
The Float32RoundUp operator rounds float32 numbers towards infinity.
The operator is currently implemented on x64, ia32, arm, and arm64.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32262}
2015-11-25 11:08:21 +00:00
ahaas
74434403f6 [turbofan] Implemented the optional Float32RoundDown operator.
I implemented the optional Float32RoundDown operator on x64, ia32, arm,
and arm64.

For arm I also had to adjust the simulator.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32261}
2015-11-25 11:06:13 +00:00
machenbach
b9d5126930 Revert of Reland "[Interpreter] Add CreateClosure to BytecodeGraphBuilder." (patchset #1 id:1 of https://codereview.chromium.org/1475793003/ )
Reason for revert:
[Sheriff] Breaks cfi:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20cfi/builds/1209

Original issue's description:
> Reland "[Interpreter] Add CreateClosure to BytecodeGraphBuilder."
>
> Original issue's description:
> > [Interpreter] Add CreateClosure to BytecodeGraphBuilder.
> >
> > Adds code and tests to support CreateClosure bytecode when building
> > graphs.
> >
> > Committed: https://crrev.com/4cceb11b0929abcbc82bf0854554a9b66003335d
> > Cr-Commit-Position: refs/heads/master@{#32224}
>
> BUG=v8:4280
> LOG=N
>
> Committed: https://crrev.com/6a8db006e1f0a08a43446b62765bba39fdc6af10
> Cr-Commit-Position: refs/heads/master@{#32257}

TBR=bmeurer@chromium.org,oth@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4280

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

Cr-Commit-Position: refs/heads/master@{#32260}
2015-11-25 11:04:34 +00:00
yangguo
1db01d6d5d Revert of Removed support deprecated (//@|/*@) source(URL|MappingURL)= (patchset #1 id:1 of https://codereview.chromium.org/1474543005/ )
Reason for revert:
Failing layout tests:

inspector/tracing/timeline-event-causes.html
virtual/syncpaint/inspector/tracing/timeline-event-causes.html
inspector/animation/animation-timeline-fill.html
virtual/threaded/inspector/tracing/timeline-event-causes.html
inspector/tracing/timeline-script-id.html
inspector/sources/debugger-ui/source-url-comment.html
inspector/console/console-log-linkify-stack-in-errors.html
virtual/syncpaint/inspector/tracing/timeline-script-id.html
virtual/threaded/inspector/tracing/timeline-script-id.html

Original issue's description:
> Removed support deprecated (//@|/*@) source(URL|MappingURL)=
>
> LOG=Y
> BUG=chromium:558998
> R=yangguo@chromium.org
>
> Committed: https://crrev.com/c1e5f005d79c436d90f474f8bc6448c4555a619f
> Cr-Commit-Position: refs/heads/master@{#32249}

TBR=machenbach@chromium.org,kozyatinskiy@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:558998

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

Cr-Commit-Position: refs/heads/master@{#32259}
2015-11-25 10:28:02 +00:00
jarin
13b3925999 [turbofan] Introduce representation-change.cc, move stuff there, minus dead code.
Review URL: https://codereview.chromium.org/1480433003

Cr-Commit-Position: refs/heads/master@{#32258}
2015-11-25 09:59:24 +00:00
oth
6a8db006e1 Reland "[Interpreter] Add CreateClosure to BytecodeGraphBuilder."
Original issue's description:
> [Interpreter] Add CreateClosure to BytecodeGraphBuilder.
>
> Adds code and tests to support CreateClosure bytecode when building
> graphs.
>
> Committed: https://crrev.com/4cceb11b0929abcbc82bf0854554a9b66003335d
> Cr-Commit-Position: refs/heads/master@{#32224}

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#32257}
2015-11-25 09:51:49 +00:00
titzer
2c37146bfa Treat WASM_FUNCTION frames as stubs.
This is "more correct" than WASM_FUNCTION falling through the switch
over code types and using the marker on the stack which contains a bogus
value.

In the long run, there will be two kinds of WASM-related frames: frames
that cross the JS/WASM border, and internal WASM_FUNCTION frames. This
will necessitate a new StackFrame::Type, since the first kind of frame
must treat its parameters as tagged values and the second definitely
should not.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32256}
2015-11-25 09:33:40 +00:00
bmeurer
09b44428e4 [runtime] First step to sanitize regexp literal creation.
This is the initial step towards refactoring the regexp literation
creation code to make it less obscure and more similar to the mechanism
we use to create array and object literals.  There's now a new runtime
entry %CreateRegExpLiteral with the same interface as the entries for
array and object literals, except that we still pass the flags as
string.

Instead of embedding the hand written native to clone JSRegExp instances
we now have a FastCloneRegExpStub, which behaves similar to the other
FastCloneShallowArrayStub and FastCloneShallowObjectStub that we already
had.

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

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

Cr-Commit-Position: refs/heads/master@{#32255}
2015-11-25 09:23:28 +00:00
yangguo
713c3df41c Add test to check PRNG quality.
Credits go to Erik Corry. Taken from:
https://github.com/dart-lang/fletch/blob/master/src/shared/random_test.cc

R=jkummerow@chromium.org
BUG=v8:4566
LOG=N

Committed: https://crrev.com/1a90af55d1e9d7d84e813dc367d475457c7df1ff
Cr-Commit-Position: refs/heads/master@{#32211}

Committed: https://crrev.com/3d84f05cd77091ea8dde7821973f13f53dbaa730
Cr-Commit-Position: refs/heads/master@{#32238}

Committed: https://crrev.com/eeee7ab050013782704b5f89e49d06a30b3455c4
Cr-Commit-Position: refs/heads/master@{#32246}

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

Cr-Commit-Position: refs/heads/master@{#32254}
2015-11-25 08:56:19 +00:00
zhengxing.li
240571d768 X87: [turbofan] Add general support for sp-based frame access.
port 5166987369 (r32234)

  original commit message:
  Some highlights of this CL:
  * Refactor the mutable state out of Frame into FrameAccessState,
    which is maintained and updated during code generation to
    record whether sp- or fp-based frame access is currently active
    and how deep the stack on top of the frame is.
  * The operand resultion in linkage.cc now uses FrameAccessState
    to determine how to generate frame-accessing operands.
  * Update all platforms to accurately track additionally pushed
    stack slots (e.g. arguments for calls) in the FrameAccessState.
  * Add a flag, --turbo_sp_frame_access, which forces all frame
    access to be sp-based whenever possible. This will likely never
    be used in production, but for testing it's useful in verifying
    that the stack-tracking of each platform maintained in the
    FrameAccessState is correct.
  * Use sp-based frame access for gap resolving before tail
    calls. This will allow for slightly more efficient restoration
    of the frame pointer in the tail call in a later CL.
  * Remove most ad hoc groping into CallDescriptors to
    determine if a frame is needed, instead consistently use
    predicates like needs_frame(), IsCFunctionCall() and
    IsJSFunctionCall().

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32253}
2015-11-25 08:43:24 +00:00
zhengxing.li
b4375d92bd X87: Install ConstructNonConstructable as construct stub for non-constructables.
port 8e28e851ee (r32223)

    original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32252}
2015-11-25 08:37:51 +00:00
machenbach
ec3548aea7 [test] Skip flaky test.
BUG=v8:4572
LOG=n
NOTRY=true
TBR=rossberg@chromium.org, adamk@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32251}
2015-11-25 08:18:10 +00:00
machenbach
5686e48b96 [Ignition] Skip more tests.
Test failures after https://codereview.chromium.org/1478533002

TBR=rossberg@chromium.org, littledan@chromium.org, rmcilroy@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#32250}
2015-11-25 08:06:37 +00:00
kozyatinskiy
c1e5f005d7 Removed support deprecated (//@|/*@) source(URL|MappingURL)=
LOG=Y
BUG=chromium:558998
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#32249}
2015-11-25 08:02:27 +00:00
jarin
9564ffe9c1 [turbofan] Replace information about uses by explicit truncation in representation selection.
This change replaces the bitwise masking of uses by storing the most general truncation for all uses.

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

Cr-Commit-Position: refs/heads/master@{#32248}
2015-11-25 08:01:00 +00:00
yangguo
47e1ab78d7 Revert of Add test to check PRNG quality. (patchset #5 id:80001 of https://codereview.chromium.org/1467133006/ )
Reason for revert:
failure here https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosse4/builds/6842/steps/Check/logs/RandomBitCorrelations12

Original issue's description:
> Add test to check PRNG quality.
>
> Credits go to Erik Corry. Taken from:
> https://github.com/dart-lang/fletch/blob/master/src/shared/random_test.cc
>
> R=jkummerow@chromium.org
> BUG=v8:4566
> LOG=N
>
> Committed: https://crrev.com/1a90af55d1e9d7d84e813dc367d475457c7df1ff
> Cr-Commit-Position: refs/heads/master@{#32211}
>
> Committed: https://crrev.com/3d84f05cd77091ea8dde7821973f13f53dbaa730
> Cr-Commit-Position: refs/heads/master@{#32238}
>
> Committed: https://crrev.com/eeee7ab050013782704b5f89e49d06a30b3455c4
> Cr-Commit-Position: refs/heads/master@{#32246}

TBR=jkummerow@chromium.org,erikcorry@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4566

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

Cr-Commit-Position: refs/heads/master@{#32247}
2015-11-25 07:44:29 +00:00
yangguo
eeee7ab050 Add test to check PRNG quality.
Credits go to Erik Corry. Taken from:
https://github.com/dart-lang/fletch/blob/master/src/shared/random_test.cc

R=jkummerow@chromium.org
BUG=v8:4566
LOG=N

Committed: https://crrev.com/1a90af55d1e9d7d84e813dc367d475457c7df1ff
Cr-Commit-Position: refs/heads/master@{#32211}

Committed: https://crrev.com/3d84f05cd77091ea8dde7821973f13f53dbaa730
Cr-Commit-Position: refs/heads/master@{#32238}

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

Cr-Commit-Position: refs/heads/master@{#32246}
2015-11-25 07:36:15 +00:00
zhengxing.li
4a514c77ad X87: Reshuffle registers in JSConstructStub to avoid trashing costructor and new.target on fast path (so we don't need to push/pop them).
port 0ef5ad5ab9 (r32219)

  original commit message:
  This CL also fixed register usages in MacroAssembler::Allocate() broken by 2fc2cb99 (r32144).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32245}
2015-11-25 06:05:36 +00:00
zhengxing.li
08071597ce X87: [runtime] Pass closure to %CreateArrayLiteral and %CreateObjectLiteral.
port 1b1db13549 (r32220)

  original commit message:
  Change the runtime entries and their associated code stubs for object
  and array literal creation to take the closure instead of the raw
  literals pointer. This is way easier to deal with (and cleaner) in
  TurboFan.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32244}
2015-11-25 05:55:54 +00:00
yangguo
4a472a035d Revert of Add test to check PRNG quality. (patchset #4 id:60001 of https://codereview.chromium.org/1467133006/ )
Reason for revert:
still timing out

Original issue's description:
> Add test to check PRNG quality.
>
> Credits go to Erik Corry. Taken from:
> https://github.com/dart-lang/fletch/blob/master/src/shared/random_test.cc
>
> R=jkummerow@chromium.org
> BUG=v8:4566
> LOG=N
>
> Committed: https://crrev.com/1a90af55d1e9d7d84e813dc367d475457c7df1ff
> Cr-Commit-Position: refs/heads/master@{#32211}
>
> Committed: https://crrev.com/3d84f05cd77091ea8dde7821973f13f53dbaa730
> Cr-Commit-Position: refs/heads/master@{#32238}

TBR=jkummerow@chromium.org,erikcorry@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4566

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

Cr-Commit-Position: refs/heads/master@{#32243}
2015-11-25 05:16:13 +00:00
zhengxing.li
116a248dba X87: Make fast_exp take an Isolate* paramter.
port 0fb2edd15d (r32217)

  original commit message:
  We still share the code globally, but if we wanted, it would be easy to
  make it per isolate now

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32242}
2015-11-25 04:51:47 +00:00
zhengxing.li
5250825fb0 X87: [compiler] No need to push literal index in VisitArrayLiteral.
port 9846f386f0 (r32205)

  original commit message:
  The literal index is being pushed onto the stack while evaluating
  the non-constant subexpressions, but never used in fullcodegen (and
  hence not used in the optimizing compilers).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32241}
2015-11-25 04:41:20 +00:00
zhengxing.li
1266842b3b X87: [turbofan] Switch passing of new.target to register.
port 7c45b00529 (r32203)

  original commit message:
  This passes the new.target value in a register instead of through a
  side-channel via the construct stub. Note that only TurboFan code uses
  the register value so far, but unoptimized code will be switched soon.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32240}
2015-11-25 04:31:44 +00:00
v8-autoroll
76fe8b017b Update V8 DEPS.
Rolling v8/tools/clang to aeba05c6d90e906ba60a328e9a5b68f25627dc29

Rolling v8/tools/swarming_client to df99a00d96fae932bae824dccba13156bf7eddd0

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

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

Cr-Commit-Position: refs/heads/master@{#32239}
2015-11-25 04:22:48 +00:00
yangguo
3d84f05cd7 Add test to check PRNG quality.
Credits go to Erik Corry. Taken from:
https://github.com/dart-lang/fletch/blob/master/src/shared/random_test.cc

R=jkummerow@chromium.org
BUG=v8:4566
LOG=N

Committed: https://crrev.com/1a90af55d1e9d7d84e813dc367d475457c7df1ff
Cr-Commit-Position: refs/heads/master@{#32211}

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

Cr-Commit-Position: refs/heads/master@{#32238}
2015-11-25 01:42:10 +00:00
adamk
b6e9f625c1 [es6] Self-assignment in a default parameter initializer should throw
The first bug was that there are two different "initialization positions"
passed into PatternRewriter::DeclareAndInitializeVariables, and we weren't
setting them all properly for this case.

After further code review, it became clear that we weren't even recording
the correct position (the end of the initializer expression).

The combination of those two bugs caused the hole check elimination code
in full-codegen to skip emitting a hole check.

This patch takes care of both of those things. A follow-up will try
to reduce the number of "initializer positions" we track in the
variable declaration code.

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

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

Cr-Commit-Position: refs/heads/master@{#32237}
2015-11-25 01:30:39 +00:00
adamk
ceb92ebfdf Disallow destructuring in legacy sloppy for-in loop parsing
For web compat reasons, we support an initializer in the declaration
part of a for-in loop. But we should disallow this for destructured
declarations (just as we do for lexical declarations). In fact, without
disallowing it, we crash.

Also fix up the PreParser to have the same restrictions here as the parser
(the lexical check was missing there), verified by running the message tests
with --min-preparse-length=0.

In fixing the logic I've also cleaned up the code a bit, removing the
only-called-once DeclarationParsingResult::SingleName method.

BUG=v8:811
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32236}
2015-11-25 01:15:28 +00:00
littledan
9278b7b05a Reland of Disable non-standard Promise functions in staging (patchset #1 id:1 of https://codereview.chromium.org/1473603002/ )
Reason for revert:
Breakage in Ignition seems unrelated; relanding.

Original issue's description:
> Revert of Disable non-standard Promise functions in staging (patchset #5 id:80001 of https://codereview.chromium.org/1469543003/ )
>
> Reason for revert:
> [Sheriff] This breaks ignition on arm sim debug:
> https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/5317
>
> Seems to not be caught by the cq bot that builds release with dchecks.
>
> Original issue's description:
> > Disable non-standard Promise functions in staging
> >
> > This patch removes Promise functions and methods which are absent
> > from the ES2015 specification when the --es-staging flag is on.
> >
> > BUG=v8:3237
> > R=rossberg
> > LOG=Y
> >
> > Committed: https://crrev.com/941251af7e04d50ac2243da2870249a42111221a
> > Cr-Commit-Position: refs/heads/master@{#32194}
>
> TBR=rossberg@chromium.org,littledan@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:3237
>
> Committed: https://crrev.com/86bd2b3c23b562213d5af158849dcd65f347a827
> Cr-Commit-Position: refs/heads/master@{#32199}

TBR=rossberg@chromium.org,rmcilroy@chromium.org,machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3237

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

Cr-Commit-Position: refs/heads/master@{#32235}
2015-11-24 23:18:30 +00:00
danno
5166987369 [turbofan] Add general support for sp-based frame access
Some highlights of this CL:
* Refactor the mutable state out of Frame into FrameAccessState,
  which is maintained and updated during code generation to
  record whether sp- or fp-based frame access is currently active
  and how deep the stack on top of the frame is.
* The operand resultion in linkage.cc now uses FrameAccessState
  to determine how to generate frame-accessing operands.
* Update all platforms to accurately track additionally pushed
  stack slots (e.g. arguments for calls) in the FrameAccessState.
* Add a flag, --turbo_sp_frame_access, which forces all frame
  access to be sp-based whenever possible. This will likely never
  be used in production, but for testing it's useful in verifying
  that the stack-tracking of each platform maintained in the
  FrameAccessState is correct.
* Use sp-based frame access for gap resolving before tail
  calls. This will allow for slightly more efficient restoration
  of the frame pointer in the tail call in a later CL.
* Remove most ad hoc groping into CallDescriptors to
  determine if a frame is needed, instead consistently use
  predicates like needs_frame(), IsCFunctionCall() and
  IsJSFunctionCall().

BUG=v8:4076
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32234}
2015-11-24 22:53:56 +00:00
mbrandy
abb9ca8b95 PPC: [runtime] Pass closure to %CreateArrayLiteral and %CreateObjectLiteral.
Port 1b1db13549

Original commit message:
    Change the runtime entries and their associated code stubs for object
    and array literal creation to take the closure instead of the raw
    literals pointer. This is way easier to deal with (and cleaner) in
    TurboFan.

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

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

Cr-Commit-Position: refs/heads/master@{#32233}
2015-11-24 21:32:07 +00:00
mbrandy
340627ea26 PPC: Install ConstructNonConstructable as construct stub for non-constructables.
Port 8e28e851ee

R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#32232}
2015-11-24 21:30:35 +00:00
mbrandy
1c1590e866 PPC: [turbofan] Switch passing of new.target to register.
Port 7c45b00529

Original commit message:
    This passes the new.target value in a register instead of through a
    side-channel via the construct stub. Note that only TurboFan code uses
    the register value so far, but unoptimized code will be switched soon.

R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:4544
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#32231}
2015-11-24 21:29:47 +00:00
mbrandy
9b3dff93ad PPC: Reshuffle registers in JSConstructStub to avoid trashing costructor and new.target on fast path (so we don't need to push/pop them).
Port 0ef5ad5ab9

Original commit message:
    This CL also fixed register usages in MacroAssembler::Allocate() broken by 2fc2cb99 (r32144).

R=ishell@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=chromium:560239
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#32230}
2015-11-24 21:27:39 +00:00