Commit Graph

21393 Commits

Author SHA1 Message Date
balazs.kilvady
244ac6de83 MIPS: Fix 'Assembler support for internal references.'
Added new INTERNAL_REFERENCE_ENCODED RelocInfo type to differentiate MIPS existing use of internal references in instructions from the new raw pointer reference needed for dd(Label*).

BUG=
TEST=cctest/test-assembler-mips/jump_tables1, cctest/test-assembler-mips/jump_tables2, cctest/test-assembler-mips/jump_tables3, cctest/test-run-machops/RunSwitch1

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

Cr-Commit-Position: refs/heads/master@{#26651}
2015-02-15 12:50:47 +00:00
machenbach
38d0749c8d Revert of Don't always bail out of GenerateTypedArrayInitialize (patchset #1 id:1 of https://codereview.chromium.org/922393003/)
Reason for revert:
Speculative revert. This CL seems to break octane.

Original issue's description:
> Don't always bail out of GenerateTypedArrayInitialize
>
> In an innocuous cleanup patch, https://code.google.com/p/v8/source/detail?r=21621,
> some boolean logic got mixed up and the Hydrogen code for TypedArrayInitialize
> was changed to always bail out. This swaps the logic appropriately.
>
> Committed: https://crrev.com/907f0b6ce573333f1cbca00db5cb1df1ead175bb
> Cr-Commit-Position: refs/heads/master@{#26643}

TBR=dslomov@chromium.org,adamk@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26650}
2015-02-15 10:14:45 +00:00
chunyang.dai
34d5cc6486 X87: Implement ES6 rest parameters.
port 8bb2e39774 (r26645).

original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26649}
2015-02-15 07:40:08 +00:00
chunyang.dai
a10ed727bc X87: Assembler support for internal references.
port 5c119485b4 (r26478).

original commit message:

  Assembler support for internal references.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26648}
2015-02-15 06:50:11 +00:00
chunyang.dai
a34ed97234 X87: new classes: no longer experimental.
port 2707d4c9f4 (r26628).

original commit message:

   This CL fixes tests that no longer valid and also fixes two issues:
    1. 'super()' in non derived constructors.
    2. Failure to step into derived constructors.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26647}
2015-02-15 01:50:57 +00:00
v8-autoroll
de7527bcda Update V8 DEPS.
Rolling v8/buildtools to 5c5e924788fe40f7d6e0a3841ac572de2475e689

Rolling v8/tools/clang to d5f568673280ba9180bbf0b913b571786c9f352a

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26646}
2015-02-14 04:36:51 +00:00
caitpotter88
8bb2e39774 Implement ES6 rest parameters
LOG=Y
BUG=v8:2159
R=dslomov@chromium.org, arv@chromium.org, marja@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26645}
2015-02-14 00:15:12 +00:00
arv
d0c2c2b32c ES6 Classes: Remove tracking of super construct calls.
With the new ES6 semantics super construct calls are only valid in
a constructor in a derived class. This is something that is
statically known and we report early SyntaxError in case it occurs.
We therefore do not need to track this any more.

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

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

Cr-Commit-Position: refs/heads/master@{#26644}
2015-02-13 22:26:34 +00:00
adamk
907f0b6ce5 Don't always bail out of GenerateTypedArrayInitialize
In an innocuous cleanup patch, https://code.google.com/p/v8/source/detail?r=21621,
some boolean logic got mixed up and the Hydrogen code for TypedArrayInitialize
was changed to always bail out. This swaps the logic appropriately.

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

Cr-Commit-Position: refs/heads/master@{#26643}
2015-02-13 20:50:34 +00:00
arv
765e002a4f Fix lazy parsing for functions that use super.
The preparser needs to log the usage of super properties and then update
the scope when we create the function later.

BUG=v8:3888
LOG=N
R=dslomov@chromium.org, marja

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

Cr-Commit-Position: refs/heads/master@{#26642}
2015-02-13 18:35:09 +00:00
arv
d273636e01 TF: Add support for [[HomeObject]]
BUG=None
LOG=N
R=mstarzinger@chromium.org, dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26641}
2015-02-13 18:34:00 +00:00
bratell
cc36222776 Make the statistics generation data driven.
StatisticsExtension::GetCounters() has grown to repeat a lot of code
so to make it more maintainable and generate less machine code,
make it data driven. This makes a 64 bit Linux build 50 KB smaller.

Total change: -51677 bytes
==========================
  1 shrunk, for a net change of -51677 bytes (64222 bytes before, 12545 bytes after) across 1 sources
  279691 unchanged, totalling 51423668 bytes

Per-source Analysis:

-------------------------------------------------------------------------------------------------------------------
 -51677 - Source: /home/bratell/src/chromium/src/v8/src/extensions/statistics-extension.cc - (gained 0, lost 51677)
-------------------------------------------------------------------------------------------------------------------
  Shrunk symbols:
     -51677: v8::internal::StatisticsExtension::GetCounters(v8::FunctionCallbackInfo<v8::Value> const&) type=t, (was 64222 bytes, now 12545 bytes)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26640}
2015-02-13 10:57:05 +00:00
loislo
a82d3dc8f9 Move identical code from platform specific assemblers to assembler.cc
BUG=none
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26639}
2015-02-13 10:45:36 +00:00
Ross McIlroy
1da1e34788 Protect access to the external_snapshot_blob global with a lock.
The external_snapshot_blob is a global and might be accessed from multiple
threads.  Protect it with a lock.

BUG=457656
LOG=N
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26638}
2015-02-13 10:35:58 +00:00
Sven Panne
e9fd6b0836 Refactored the final parts of the TurboFan pipeline a bit.
This removed some inconsistent/duplicated code and made the testing
side entrance much simpler: Now it simply constructs a pipeline and
hands off to the "tail" of the normal pipeline.

R=danno@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26637}
2015-02-13 10:35:34 +00:00
loislo
2cfebcf92e Fix compilation for the case dcheck_always_on=1.
It is a default option for some try bots.

otherwise compilation fails on
DCHECK(layout_descriptor->IsConsistentWithMap(*map));

BUG=none
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26636}
2015-02-13 10:29:30 +00:00
Akos Palfi
db13f0847b MIPS: new classes: no longer experimental.
Port 2707d4c9f4

Original commit message:
This CL fixes tests that no longer valid and also fixes two issues:
1. 'super()' in non derived constructors.
2. Failure to step into derived constructors.

BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#26635}
2015-02-13 01:26:20 +00:00
Akos Palfi
58d8e169f1 MIPS: new classes: implement correct check for uninitialized this in 'super()'
Port fdcf3e59ba

BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#26634}
2015-02-13 01:22:40 +00:00
Erik Arvidsson
1dcce1c8ef Make super() a syntax error in base class constructor
BUG=v8:3330
LOG=N
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26633}
2015-02-12 23:04:54 +00:00
Erik Arvidsson
fd5a0de2af Fix location of super syntax errors
BUG=v8:3885
LOG=N
R=adamk@chromium.org, dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26632}
2015-02-12 20:53:17 +00:00
Dmitry Lomov
7866f00508 Remove --experimental-classes flag and related dead code.
R=arv@chromium.org
BUG=v8:3834
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26631}
2015-02-12 20:07:15 +00:00
loislo
d23ab23b05 CPUProfiler: Push deopt reason further to ProfileNode.
1) create beefy RelocInfo table when cpu profiler is active, so if a function
was optimized when profiler was active RelocInfo would get separate DeoptInfo
for the each deopt case.

2) push DeoptInfo from CodeEntry to ProfileNode.
When deopt happens we put the info collected on #1 into CodeEntry and record stack sample.
On the sampling thread we grab the deopt data and append it to the corresponding ProfileNode deopts list.

Sample profile dump.
[Top down]:
    0  (root) 0 #1
    1     29 #2
    1      test 29 #3
    2        opt_function 29 #4
    2          opt_function 29 #5
                   deopted at 118 with reason 'not a heap number'
                   deopted at 137 with reason 'division by zero'

BUG=452067
LOG=n

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

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

Cr-Commit-Position: refs/heads/master@{#26630}
2015-02-12 19:51:37 +00:00
machenbach
44bc8646c3 Create v8 roll branches in refs/heads.
This is needed as normal chromium checkouts don't fetch
branch-heads.

These branches will also be replicated by GitHub and are
fetched when cloning from the repository.

The expected object size will be the same or smaller than
before as we currently push the same information onto the
candidates branch (which already is in refs/heads). The only
difference is the increasing number of refs in refs/heads.

BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n

TEST=./script_test.py
TEST=tools/release/create_release.py -r machenbach@chromium.org -a machenbach@chromium.org --dry-run

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

Cr-Commit-Position: refs/heads/master@{#26629}
2015-02-12 18:34:32 +00:00
Dmitry Lomov
2707d4c9f4 new classes: no longer experimental.
This CL fixes tests that no longer valid and also fixes two issues:
1. 'super()' in non derived constructors.
2. Failure to step into derived constructors.

R=arv@chromium.org, yurys@chromium.org
BUG=v8:3834
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26628}
2015-02-12 18:06:52 +00:00
ishell@chromium.org
d4cb046b19 Fix for the compilation issue in shared mode introduced by r26624
TBR=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26627}
2015-02-12 17:27:22 +00:00
mstarzinger
d202d79a6a Add missing FrameState to JSTypedLoweringTester::Binop.
R=titzer@chromium.org
TEST=cctest/test-js-typed-lowering

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

Cr-Commit-Position: refs/heads/master@{#26626}
2015-02-12 17:08:53 +00:00
yangguo
515d260634 Mark pages created during bootstrapping as never-evacuate.
This is to ensure that immutable immortal objects created during
bootstrapping are not relocated.

R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26625}
2015-02-12 16:47:56 +00:00
ishell
2e54397ca3 Enable layout descriptor consistency checks in heap verification mode.
Review URL: https://codereview.chromium.org/917743004

Cr-Commit-Position: refs/heads/master@{#26624}
2015-02-12 16:40:41 +00:00
rossberg
eecde44f82 Properly thread language mode to compilation cache
Fixes the TSAN issue.

R=mstarzinger@chromium.org
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26623}
2015-02-12 16:29:54 +00:00
ulan
1291400fbb Fix GCMole after b79b985988
NOTREECHECKS=true
BUG=
TBR=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26622}
2015-02-12 16:00:38 +00:00
jarin
8bd0bd522e [turbofan] Make the representation type component independent of the semantic component.
R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26621}
2015-02-12 15:21:33 +00:00
marja
30c71859ed Parser / PreParser: trivial unifications
(To minimize the diff of actually interesting unifications.)

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26620}
2015-02-12 15:12:45 +00:00
rossberg
dff690ec07 [strong] no sloppy equality
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26619}
2015-02-12 15:10:04 +00:00
chunyang.dai
e1c2e83888 X87: silence C++ compiler warnings.
To solence C++ compiler warnings because is_mutable_ is only for CHECK.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26618}
2015-02-12 14:40:07 +00:00
jochen
58deea0ad0 Make it possible to define arguments for CompileFunctionInContext
Also make sure that the function body really produces only one function literal.

LOG=y
BUG=none
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26617}
2015-02-12 14:39:03 +00:00
loislo
cb6ea146dc Revert of CPUProfiler: Push deopt reason further to ProfileNode. (patchset #1 id:1 of https://codereview.chromium.org/919953002/)
Reason for revert:
static initializers broke the build

Original issue's description:
> CPUProfiler: Push deopt reason further to ProfileNode.
>
> 1) create beefy RelocInfo table when cpu profiler is active, so if a function
> was optimized when profiler was active RelocInfo would get separate DeoptInfo
> for the each deopt case.
>
> 2) push DeoptInfo from CodeEntry to ProfileNode.
> When deopt happens we put the info collected on #1 into CodeEntry and record stack sample.
> On the sampling thread we grab the deopt data and append it to the corresponding ProfileNode deopts list.
>
> Sample profile dump.
> [Top down]:
>     0  (root) 0 #1
>     1     29 #2
>     5      test 29 #3
>     3        opt_function 29 #4
>                  deopted at 52 with reason 'not a heap number'
>                  deopted at 71 with reason 'division by zero'
>
> BUG=452067
> LOG=n
>
> Committed: https://crrev.com/ce8701b247d3c6604f24f17a90c02d17b4417f54
> Cr-Commit-Position: refs/heads/master@{#26615}

TBR=jarin@chromium.org,svenpanne@chromium.org,yurys@chromium.org,alph@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=452067

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

Cr-Commit-Position: refs/heads/master@{#26616}
2015-02-12 14:36:37 +00:00
loislo
ce8701b247 CPUProfiler: Push deopt reason further to ProfileNode.
1) create beefy RelocInfo table when cpu profiler is active, so if a function
was optimized when profiler was active RelocInfo would get separate DeoptInfo
for the each deopt case.

2) push DeoptInfo from CodeEntry to ProfileNode.
When deopt happens we put the info collected on #1 into CodeEntry and record stack sample.
On the sampling thread we grab the deopt data and append it to the corresponding ProfileNode deopts list.

Sample profile dump.
[Top down]:
    0  (root) 0 #1
    1     29 #2
    5      test 29 #3
    3        opt_function 29 #4
                 deopted at 52 with reason 'not a heap number'
                 deopted at 71 with reason 'division by zero'

BUG=452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26615}
2015-02-12 13:25:17 +00:00
ulan
b79b985988 Use weak cells in dependent code.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26614}
2015-02-12 13:21:13 +00:00
mstarzinger
9159c419e8 Fix missing visitation of FrameState in simplified lowering.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26613}
2015-02-12 13:14:46 +00:00
marja
df0cb9999f Parsing: Make Parser not know about Isolate during background parsing.
Parser must be able to operate independent of Isolate and the V8 heap during
parsing. After the heap-independent phase, there is a heap dependent phase,
during which we internalize strings, handle errors, etc.

This makes Isolate (also via CompilationInfo) unaccessible during parsing, and
thus decreases the probability of accidental code changes which would add
heap-dependent operations into the heap-independent phase.

Since Isolate is also accessible via CompilationInfo, now CompilationInfo is
only passed to the entry points of parsing, and not stored in Parser.

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26612}
2015-02-12 13:02:44 +00:00
bmeurer
3336d2e11e [turbofan] Merge node-aux-data-inl.h into node-aux-data.h.
Google style guide forbids -inl.h headers.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26611}
2015-02-12 13:01:29 +00:00
svenpanne
222001ace4 Removed one bogus CompilationInfo constructor.
Use a fake code stub instead, basically following the null object pattern.

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

Cr-Commit-Position: refs/heads/master@{#26610}
2015-02-12 12:57:19 +00:00
bmeurer
4465836c8a Fix invalid use of int in Zone.
Review URL: https://codereview.chromium.org/924453002

Cr-Commit-Position: refs/heads/master@{#26609}
2015-02-12 12:47:18 +00:00
danno
e87c0bac35 Remove redundant source position information in RelocInfo
Previously, emitting two more more unique source positions at the same pc would
generate two or more RelocInfo entries. Now, only the last emitted source
position for any pc is added to the RelocInfo.

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

Cr-Commit-Position: refs/heads/master@{#26608}
2015-02-12 12:15:31 +00:00
hpayer
295ab27830 Fix JSArrayBufferView visitor template to fix ARM build.
NOTREECHECKS=true
TBR=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26607}
2015-02-12 11:58:34 +00:00
Ben L. Titzer
d9790bc7ed Inline the ParseInfo structure as parameters to the Parser constructor.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26606}
2015-02-12 11:57:11 +00:00
hpayer
bd61a85faf Just visit young array buffers during scavenge. Additionally keep the views in new space in a separate global list and move them to the corresponding array buffers when they get promoted.
This reduces young generation garbage collections when many array buffers are allocated.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26605}
2015-02-12 10:00:44 +00:00
mstarzinger
34c1db2fd7 Fix nasty off-by-one in the TurboFan JSON tracer.
R=danno@chromium.org
TEST=cctest/test-run-intrinsics/CallFunction

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

Cr-Commit-Position: refs/heads/master@{#26604}
2015-02-12 09:16:29 +00:00
cdai2
71784ec03c X87: new classes: implement correct check for uninitialized this in 'super()'
port fdcf3e59ba (r26599)

original commit message:

    new classes: implement correct check for uninitialized this in 'super()'

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26603}
2015-02-12 08:11:40 +00:00
bmeurer
42c30b8f39 [ycm] The YouCompleteMe configuration is not VIM specific.
Rename tools/vim/v8.ycm_extra_conf.py to .ycm_extra_conf.py, so every
YCM plugin (no matter if it's VIM or Emacs) should pick it up
automatically.

Also move the common tools/vim/ninja_output.py to tools/ninja/ as it's
also not related to VIM.

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

Cr-Commit-Position: refs/heads/master@{#26602}
2015-02-12 07:21:13 +00:00