machenbach [Mon, 16 Feb 2015 17:00:44 +0000 (09:00 -0800)]
Fix v8rel script after adding roll branches.
Use git hashes as keys when referring to releases, not
pure commit position numbers as those are not unique.
Better bailout to only check for recent releases.
Add new branching method with a roll branch in heads to
the v8rel test case.
Fix the way v8 is referred to in DEPS files in the test
cases. The test still had svn-number style.
BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n
TEST=./script_test.py
Review URL: https://codereview.chromium.org/
928243002
Cr-Commit-Position: refs/heads/master@{#26669}
ishell@chromium.org [Mon, 16 Feb 2015 15:49:41 +0000 (16:49 +0100)]
Fix for the compilation failure due to multi-line comments in test-migrations.cc
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
923943003
Cr-Commit-Position: refs/heads/master@{#26668}
ishell [Mon, 16 Feb 2015 15:25:33 +0000 (07:25 -0800)]
Property reconfiguring implemented.
Previous approach for property reconfiguration was to create a free-floating map with generalized representations of all fields. This patch does it right.
When property is reconfigured either by changing its kind (kData <-> kAccessor) or its attributes it implies creation of a new branch in transition tree. If such a branch already existed before reconfiguration then it should be merged with the old (or source) branch of the transition tree. Merging procedure includes all the heavy machinery such as property location changes (kDescriptor -> kField), field representation/field type generalization, map deprecation, etc.
Review URL: https://codereview.chromium.org/
888623002
Cr-Commit-Position: refs/heads/master@{#26667}
titzer [Mon, 16 Feb 2015 14:56:00 +0000 (06:56 -0800)]
[turbofan] Fix control reducer with re-reducing branches.
R=jarin@chromium.org
LOG=Y
BUG=chromium:458876
Review URL: https://codereview.chromium.org/
917383004
Cr-Commit-Position: refs/heads/master@{#26666}
jarin [Mon, 16 Feb 2015 14:25:10 +0000 (06:25 -0800)]
[turbofan] Clear pending exception from unsuccessful compilation.
BUG=chromium:458987
LOG=n
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
932603002
Cr-Commit-Position: refs/heads/master@{#26665}
svenpanne [Mon, 16 Feb 2015 13:44:51 +0000 (05:44 -0800)]
Build stack frames for stubs only when needed.
The heuristic is quite naive at the moment (build a frame iff the
register allocator needed spill slots), we can improve that later.
Review URL: https://codereview.chromium.org/
933603002
Cr-Commit-Position: refs/heads/master@{#26664}
rodolph.perfetta [Mon, 16 Feb 2015 13:26:01 +0000 (05:26 -0800)]
gcc 4.6 fix.
BUG=
Review URL: https://codereview.chromium.org/
927083002
Cr-Commit-Position: refs/heads/master@{#26663}
verwaest [Mon, 16 Feb 2015 13:09:53 +0000 (05:09 -0800)]
Remove prototype key from the prototype transitions since its also embedded in the target map.
BUG=
Review URL: https://codereview.chromium.org/
932583002
Cr-Commit-Position: refs/heads/master@{#26662}
jarin [Mon, 16 Feb 2015 12:59:12 +0000 (04:59 -0800)]
[turbofan] Avoid ToNumber conversions if they could deoptimize.
BUG=chromium:454158
LOG=n
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
922623002
Cr-Commit-Position: refs/heads/master@{#26661}
yangguo [Mon, 16 Feb 2015 12:39:09 +0000 (04:39 -0800)]
Track code cache reject reason via histogram buckets.
R=vogelheim@chromium.org
BUG=chromium:441896
LOG=N
Review URL: https://codereview.chromium.org/
922573003
Cr-Commit-Position: refs/heads/master@{#26660}
machenbach [Mon, 16 Feb 2015 12:21:34 +0000 (04:21 -0800)]
Include range summary when rolling into chromium.
BUG=chromium:457022
TBR=tandrii@chromium.org
NOTRY=true
LOG=n
TEST=./script_test.py
Review URL: https://codereview.chromium.org/
918953003
Cr-Commit-Position: refs/heads/master@{#26659}
tfarina [Mon, 16 Feb 2015 12:09:30 +0000 (04:09 -0800)]
Rename source_prereqs to inputs in the GN Build file.
See more information in the gn-dev mailing list:
https://groups.google.com/a/chromium.org/d/msg/gn-dev/j-P5hlvZ13M/4CSw2WworlkJ
Also in
https://chromium.googlesource.com/chromium/src/+/
61a6fca4bca5438bf4338184c29fded55e5f240e
BUG=374271
R=machenbach@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/
917243002
Cr-Commit-Position: refs/heads/master@{#26658}
machenbach [Mon, 16 Feb 2015 11:57:29 +0000 (03:57 -0800)]
Fix branch name in merge script.
BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n
TEST=./script_test.py
Review URL: https://codereview.chromium.org/
925313002
Cr-Commit-Position: refs/heads/master@{#26657}
ishell [Mon, 16 Feb 2015 11:29:32 +0000 (03:29 -0800)]
ifdefs around LayoutDescriptor::IsConsistenWithMap() removed.
This avoids potential mess with different compilation modes.
Review URL: https://codereview.chromium.org/
934533002
Cr-Commit-Position: refs/heads/master@{#26656}
svenpanne [Mon, 16 Feb 2015 11:04:22 +0000 (03:04 -0800)]
Get code flags from compilation info.
Removed useless (and in the future incorrect) DCHECKs on the way.
Review URL: https://codereview.chromium.org/
921443004
Cr-Commit-Position: refs/heads/master@{#26655}
svenpanne [Mon, 16 Feb 2015 09:30:11 +0000 (01:30 -0800)]
Removed the funky 2-stage initialization of PipelineData.
Use simple old-skool constructors instead. Note that the long repeated
member initializer lists could be reduced a bit by using C++11's
brace-or-equal initializers, which are actually recommended by the
Google C++ style guide in this case, but the ARM toolchain is still
buggy in this area (see patch sets 1 and 2). :-/
Review URL: https://codereview.chromium.org/
913993004
Cr-Commit-Position: refs/heads/master@{#26654}
yangguo [Mon, 16 Feb 2015 09:20:42 +0000 (01:20 -0800)]
Revert "Fix JSArrayBufferView visitor template to fix ARM build."
and "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 reverts commit
295ab2783025237dd7a1c86ddb13690d910622a1
and commit
bd61a85fafd6461a40dc1e20252fd843f148e837.
TBR=hpayer@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/
929973002
Cr-Commit-Position: refs/heads/master@{#26653}
v8-autoroll [Mon, 16 Feb 2015 04:32:49 +0000 (20:32 -0800)]
Update V8 DEPS.
Rolling v8/tools/clang to
21c0f1864716dbe8d8d4061c18efbde7c49b6a6a
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
930743002
Cr-Commit-Position: refs/heads/master@{#26652}
balazs.kilvady [Sun, 15 Feb 2015 12:50:38 +0000 (04:50 -0800)]
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}
machenbach [Sun, 15 Feb 2015 10:14:38 +0000 (02:14 -0800)]
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}
chunyang.dai [Sun, 15 Feb 2015 07:39:57 +0000 (23:39 -0800)]
X87: Implement ES6 rest parameters.
port
8bb2e397745630375c3f189293cfbaf791a6403c (r26645).
original commit message:
BUG=
Review URL: https://codereview.chromium.org/
929763002
Cr-Commit-Position: refs/heads/master@{#26649}
chunyang.dai [Sun, 15 Feb 2015 06:49:58 +0000 (22:49 -0800)]
X87: Assembler support for internal references.
port
5c119485b485a5c71155501613ae3c12be2863a8 (r26478).
original commit message:
Assembler support for internal references.
BUG=
Review URL: https://codereview.chromium.org/
920503002
Cr-Commit-Position: refs/heads/master@{#26648}
chunyang.dai [Sun, 15 Feb 2015 01:50:39 +0000 (17:50 -0800)]
X87: new classes: no longer experimental.
port
2707d4c9f4b6e6e600e708b3b08b09d27d594ce7 (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}
v8-autoroll [Sat, 14 Feb 2015 04:36:38 +0000 (20:36 -0800)]
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}
caitpotter88 [Sat, 14 Feb 2015 00:14:46 +0000 (16:14 -0800)]
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}
arv [Fri, 13 Feb 2015 22:26:17 +0000 (14:26 -0800)]
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}
adamk [Fri, 13 Feb 2015 20:50:21 +0000 (12:50 -0800)]
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}
arv [Fri, 13 Feb 2015 18:34:52 +0000 (10:34 -0800)]
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}
arv [Fri, 13 Feb 2015 18:33:42 +0000 (10:33 -0800)]
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}
bratell [Fri, 13 Feb 2015 10:56:41 +0000 (02:56 -0800)]
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}
loislo [Fri, 13 Feb 2015 10:45:26 +0000 (02:45 -0800)]
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}
Ross McIlroy [Fri, 13 Feb 2015 10:35:37 +0000 (10:35 +0000)]
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}
Sven Panne [Fri, 13 Feb 2015 10:35:18 +0000 (11:35 +0100)]
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}
loislo [Fri, 13 Feb 2015 10:29:11 +0000 (02:29 -0800)]
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}
Akos Palfi [Fri, 13 Feb 2015 01:25:58 +0000 (02:25 +0100)]
MIPS: new classes: no longer experimental.
Port
2707d4c9f4b6e6e600e708b3b08b09d27d594ce7
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}
Akos Palfi [Fri, 13 Feb 2015 01:21:08 +0000 (02:21 +0100)]
MIPS: new classes: implement correct check for uninitialized this in 'super()'
Port
fdcf3e59ba4af1aa3c5b31a18e615169c97958ab
BUG=
R=paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/
920543004
Cr-Commit-Position: refs/heads/master@{#26634}
Erik Arvidsson [Thu, 12 Feb 2015 23:04:40 +0000 (18:04 -0500)]
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}
Erik Arvidsson [Thu, 12 Feb 2015 20:53:03 +0000 (15:53 -0500)]
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}
Dmitry Lomov [Thu, 12 Feb 2015 20:06:52 +0000 (21:06 +0100)]
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}
loislo [Thu, 12 Feb 2015 19:51:26 +0000 (11:51 -0800)]
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}
machenbach [Thu, 12 Feb 2015 18:34:21 +0000 (10:34 -0800)]
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}
Dmitry Lomov [Thu, 12 Feb 2015 18:06:24 +0000 (19:06 +0100)]
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}
ishell@chromium.org [Thu, 12 Feb 2015 17:26:57 +0000 (18:26 +0100)]
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}
mstarzinger [Thu, 12 Feb 2015 17:08:47 +0000 (09:08 -0800)]
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}
yangguo [Thu, 12 Feb 2015 16:47:50 +0000 (08:47 -0800)]
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}
ishell [Thu, 12 Feb 2015 16:40:26 +0000 (08:40 -0800)]
Enable layout descriptor consistency checks in heap verification mode.
Review URL: https://codereview.chromium.org/
917743004
Cr-Commit-Position: refs/heads/master@{#26624}
rossberg [Thu, 12 Feb 2015 16:29:42 +0000 (08:29 -0800)]
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}
ulan [Thu, 12 Feb 2015 16:00:25 +0000 (08:00 -0800)]
Fix GCMole after
b79b985988fd
NOTREECHECKS=true
BUG=
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
917193002
Cr-Commit-Position: refs/heads/master@{#26622}
jarin [Thu, 12 Feb 2015 15:21:17 +0000 (07:21 -0800)]
[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}
marja [Thu, 12 Feb 2015 15:12:32 +0000 (07:12 -0800)]
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}
rossberg [Thu, 12 Feb 2015 15:09:55 +0000 (07:09 -0800)]
[strong] no sloppy equality
R=marja@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
917703003
Cr-Commit-Position: refs/heads/master@{#26619}
chunyang.dai [Thu, 12 Feb 2015 14:40:01 +0000 (06:40 -0800)]
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}
jochen [Thu, 12 Feb 2015 14:38:54 +0000 (06:38 -0800)]
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}
loislo [Thu, 12 Feb 2015 14:36:21 +0000 (06:36 -0800)]
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}
loislo [Thu, 12 Feb 2015 13:24:59 +0000 (05:24 -0800)]
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}
ulan [Thu, 12 Feb 2015 13:21:06 +0000 (05:21 -0800)]
Use weak cells in dependent code.
BUG=
Review URL: https://codereview.chromium.org/
871253005
Cr-Commit-Position: refs/heads/master@{#26614}
mstarzinger [Thu, 12 Feb 2015 13:14:33 +0000 (05:14 -0800)]
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}
marja [Thu, 12 Feb 2015 13:02:30 +0000 (05:02 -0800)]
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}
bmeurer [Thu, 12 Feb 2015 13:01:21 +0000 (05:01 -0800)]
[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}
svenpanne [Thu, 12 Feb 2015 12:57:07 +0000 (04:57 -0800)]
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}
bmeurer [Thu, 12 Feb 2015 12:46:58 +0000 (04:46 -0800)]
Fix invalid use of int in Zone.
Review URL: https://codereview.chromium.org/
924453002
Cr-Commit-Position: refs/heads/master@{#26609}
danno [Thu, 12 Feb 2015 12:15:14 +0000 (04:15 -0800)]
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}
hpayer [Thu, 12 Feb 2015 11:58:24 +0000 (03:58 -0800)]
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}
Ben L. Titzer [Thu, 12 Feb 2015 11:56:57 +0000 (12:56 +0100)]
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}
hpayer [Thu, 12 Feb 2015 10:00:26 +0000 (02:00 -0800)]
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}
mstarzinger [Thu, 12 Feb 2015 09:16:18 +0000 (01:16 -0800)]
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}
cdai2 [Thu, 12 Feb 2015 08:10:56 +0000 (16:10 +0800)]
X87: new classes: implement correct check for uninitialized this in 'super()'
port
fdcf3e59ba4af1aa3c5b31a18e615169c97958ab (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}
bmeurer [Thu, 12 Feb 2015 07:21:06 +0000 (23:21 -0800)]
[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}
cdai2 [Thu, 12 Feb 2015 03:51:22 +0000 (11:51 +0800)]
X87: new classes: implement default constructors
port
9b158fa79a510bd1fee2f663163d9116879cb33a (r26594)
original commit message:
new classes: implement default constructors
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
914403004
Cr-Commit-Position: refs/heads/master@{#26601}
dcarney [Wed, 11 Feb 2015 21:29:17 +0000 (13:29 -0800)]
fix typo in mjsunit expectations
TBR=machenbach@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
915113004
Cr-Commit-Position: refs/heads/master@{#26600}
dslomov [Wed, 11 Feb 2015 20:47:22 +0000 (12:47 -0800)]
new classes: implement correct check for uninitialized this in 'super()'
R=arv@chromium.org
BUG=v8:3834
LOG=N
Review URL: https://codereview.chromium.org/
918603004
Cr-Commit-Position: refs/heads/master@{#26599}
akos.palfi [Wed, 11 Feb 2015 20:41:53 +0000 (12:41 -0800)]
MIPS: new classes: implement default constructors.
Port
9b158fa79a510bd1fee2f663163d9116879cb33a
BUG=
Review URL: https://codereview.chromium.org/
914303003
Cr-Commit-Position: refs/heads/master@{#26598}
akos.palfi [Wed, 11 Feb 2015 19:54:13 +0000 (11:54 -0800)]
MIPS: new classes: implement new.target passing to superclass constructor.
Port
bf49be39f333bf1ce14202663595d455aa4b24cb
BUG=
Review URL: https://codereview.chromium.org/
906813003
Cr-Commit-Position: refs/heads/master@{#26597}
chunyang.dai [Wed, 11 Feb 2015 17:41:53 +0000 (09:41 -0800)]
X87: new classes: implement new.target passing to superclass constructor
port
bf49be39f333bf1ce14202663595d455aa4b24cb (r26572)
original commit message:
new classes: implement new.target passing to superclass constructor
BUG=
Review URL: https://codereview.chromium.org/
912233003
Cr-Commit-Position: refs/heads/master@{#26596}
chunyang.dai [Wed, 11 Feb 2015 17:31:59 +0000 (09:31 -0800)]
Copy the corresponding opt_count_and_bailout_reason info when invoking Runtime_SetCode.
This error is exposed by this CL: https://codereview.chromium.org/
817293005.
This CL set all Buildin JS function to optimization_disabled.
And set the bailout reason to "kBuiltinFunctionCannotBeOptimized". But in Runtime_SetCode() function.
It copied the the compiler_hints which include the "bool optimization_disabled" value,
But the corresponding Bailout reason is not copied.
This leads to the check error in "CompilationInfo::AbortOptimization(...)" function.
This issue is exposed on turbofan unsupported X87 platform. Crankshaft is invoked to compile
the typed array function Uint8Array.
BUG=
Review URL: https://codereview.chromium.org/
917643002
Cr-Commit-Position: refs/heads/master@{#26595}
dslomov [Wed, 11 Feb 2015 17:22:50 +0000 (09:22 -0800)]
new classes: implement default constructors.
R=arv@chromium.org,rossberg@chromium.org
BUG=v8:3834
LOG=N
Review URL: https://codereview.chromium.org/
917753002
Cr-Commit-Position: refs/heads/master@{#26594}
loislo [Wed, 11 Feb 2015 17:11:23 +0000 (09:11 -0800)]
Fix for arm64 after v8:r26448
The offensive cl is https://codereview.chromium.org/
874323003/
Test:
./out/arm64.debug/d8 --test --random-seed=-
235865360 --turbo-deoptimization --turbo-filter=* --always-opt --debug-code --verify-heap --gc-interval=500 --stress-compaction test/mjsunit/mjsunit.js test/mjsunit/regress/regress-builtinbust-7.js --trace-deopt
BUG=452067
TBR=dcarney, svenpanne
LOG=n
Review URL: https://codereview.chromium.org/
917823002
Cr-Commit-Position: refs/heads/master@{#26593}
rodolph.perfetta [Wed, 11 Feb 2015 16:52:20 +0000 (08:52 -0800)]
Fix issue when compiling with gcc 4.6.
BUG=
Review URL: https://codereview.chromium.org/
905383003
Cr-Commit-Position: refs/heads/master@{#26592}
mstarzinger [Wed, 11 Feb 2015 16:21:01 +0000 (08:21 -0800)]
Remove redundant check from ControlEquivalence traversal.
R=jarin@chromium.org
TEST=unittests/ControlEquivalenceTest
Review URL: https://codereview.chromium.org/
916823002
Cr-Commit-Position: refs/heads/master@{#26591}
cdai2 [Wed, 11 Feb 2015 15:50:17 +0000 (23:50 +0800)]
X87: Parsing: Make Scope not know about Isolate.
port
5d68529be240a1fc9fcc67c8950ead4baf7604e4 (r26546)
original commit message:
Parsing: Make Scope not know about Isolate.
Scope, like Parser, must be able to operate independent of Isolate and the V8
heap (for background parsing). After the heap-independent phase, there is a heap
dependent phase, during which we do operations such as scope anaylysis.
This CL makes the phases explicit by not telling Scope about the Isolate too
early (during the heap-independent phase, Scope should know nothing about
Isolate). This decreases the probability of accidental code changes which would
add heap-dependent operations into the heap-independent phase.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
913163003
Cr-Commit-Position: refs/heads/master@{#26590}
titzer [Wed, 11 Feb 2015 15:49:02 +0000 (07:49 -0800)]
Reduce the number of #includes of compiler.h.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
917583004
Cr-Commit-Position: refs/heads/master@{#26589}
cdai2 [Wed, 11 Feb 2015 15:36:48 +0000 (23:36 +0800)]
X87: Propagate Deopt reason to cpu-profiler
port
86cae1633caa31f2225b6932850fb13d3a21cf59 (r26545)
original commit message:
1) Deoptimizer::Reason was replaced with Deoptimizer::DeoptInfo
because it also has raw position. Also the old name clashes with DeoptReason enum.
2) c_entry_fp assignment call was added to EntryGenerator::Generate
So we can calculate sp and have a chance to record the stack for the deopting function.
btw it makes the test stable.
3) new kind of CodeEvents was added to cpu-profiler
4) GetDeoptInfo method was extracted from PrintDeoptLocation.
So it could be reused in cpu profiler.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
912403003
Cr-Commit-Position: refs/heads/master@{#26588}
adamk [Wed, 11 Feb 2015 15:36:27 +0000 (07:36 -0800)]
Remove stray comment from ast.cc
This comment used to have a (commented-out) ASSERT attached to it.
But that ASSERT was removed years ago, so the comment is now a
non-sequitar.
Review URL: https://codereview.chromium.org/
918453002
Cr-Commit-Position: refs/heads/master@{#26587}
arv [Wed, 11 Feb 2015 15:13:05 +0000 (07:13 -0800)]
Fix issue with super and computed property names
We did not set up the [[HomeObject]] for properties created for
computed property names.
BUG=v8:3879
LOG=N
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
914773002
Cr-Commit-Position: refs/heads/master@{#26586}
arv [Wed, 11 Feb 2015 15:11:54 +0000 (07:11 -0800)]
Remove dead code related to new super
Support for `new super` has been removed so this code in the full
code gen is now unreachable.
BUG=None
LOG=N
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
911223002
Cr-Commit-Position: refs/heads/master@{#26585}
mstarzinger [Wed, 11 Feb 2015 15:02:32 +0000 (07:02 -0800)]
Mark some common operator with Property::kNoThrow.
R=bmeurer@chromium.org
TEST=unittests/CommonOperatorTest
Review URL: https://codereview.chromium.org/
912393002
Cr-Commit-Position: refs/heads/master@{#26584}
titzer [Wed, 11 Feb 2015 14:51:59 +0000 (06:51 -0800)]
Move SetFunctionInfo() from compiler.cc to objects.cc. Rationale: not related to generating code.
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
917433007
Cr-Commit-Position: refs/heads/master@{#26583}
dcarney [Wed, 11 Feb 2015 14:35:52 +0000 (06:35 -0800)]
skip failing test on arm64
LOG=N
BUG=v8:3884
Review URL: https://codereview.chromium.org/
916803002
Cr-Commit-Position: refs/heads/master@{#26582}
Yang Guo [Wed, 11 Feb 2015 14:32:15 +0000 (15:32 +0100)]
Fix shared library build.
TBR=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/
913173002
Cr-Commit-Position: refs/heads/master@{#26581}
svenpanne [Wed, 11 Feb 2015 14:12:03 +0000 (06:12 -0800)]
Removed most of the bogus CompilationInfo constructor calls.
A CompilationInfo constructed from just an Isolate* and a Zone* is in
weird an inconsistent state (calling e.g. flags() on it will crash),
so we need to avoid them. This CL removes almost all of them, the
remaining 2 call sites in (for testing only) will be handled in a
separate CL. Things which have been changed:
* Linkage is basically a decorator for CallDescriptor now.
* ChangeLowering doesn't need Linkage at all.
* JSGenericLowering doesn't need a full CompilationInfo*, just a
single flag.
* JSContextSpecializer doesn't need the full CompilationInfo, just a
Context.
* Removed unused CompilationInfo from SimplifiedLoweringTester.
This nicely decouples things already a bit more, but there's still
work to do...
Review URL: https://codereview.chromium.org/
899803003
Cr-Commit-Position: refs/heads/master@{#26580}
yangguo [Wed, 11 Feb 2015 14:10:02 +0000 (06:10 -0800)]
Catch graceful failures when deserializing in d8.
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/
917653002
Cr-Commit-Position: refs/heads/master@{#26579}
yangguo [Wed, 11 Feb 2015 14:03:10 +0000 (06:03 -0800)]
Whitelist serialized objects wrt MSAN.
R=jochen@chromium.org
BUG=chromium:457459
LOG=N
Review URL: https://codereview.chromium.org/
919613002
Cr-Commit-Position: refs/heads/master@{#26578}
hpayer [Wed, 11 Feb 2015 13:39:29 +0000 (05:39 -0800)]
Use just one to-space page for the promotion queue.
BUG=454725
LOG=n
Review URL: https://codereview.chromium.org/
919473008
Cr-Commit-Position: refs/heads/master@{#26577}
titzer [Wed, 11 Feb 2015 13:26:35 +0000 (05:26 -0800)]
[turbofan] Use heavy-handed graph duplication to do loop peeling for OSR.
BUG=
Review URL: https://codereview.chromium.org/
898353002
Cr-Commit-Position: refs/heads/master@{#26576}
yangguo [Wed, 11 Feb 2015 12:06:11 +0000 (04:06 -0800)]
Fix NewStringRangeError failure due to failing malloc.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
912333002
Cr-Commit-Position: refs/heads/master@{#26575}
yangguo [Wed, 11 Feb 2015 10:21:18 +0000 (02:21 -0800)]
Throw on range error when creating a string via API.
R=jkummerow@chromium.org
BUG=v8:3853
LOG=Y
Review URL: https://codereview.chromium.org/
867373003
Cr-Commit-Position: refs/heads/master@{#26574}
ulan [Wed, 11 Feb 2015 09:59:41 +0000 (01:59 -0800)]
Reland r26549 "Fix IsWeakObjectInOptimizedCode predicate to also include property cells."
BUG=v8:3882
LOG=NO
Review URL: https://codereview.chromium.org/
913093002
Cr-Commit-Position: refs/heads/master@{#26573}
dslomov [Wed, 11 Feb 2015 09:47:32 +0000 (01:47 -0800)]
new classes: implement new.target passing to superclass constructor.
R=arv@chromium.org,rossberg@chromium.org
BUG=v8:3834
LOG=N
Committed: https://crrev.com/
8aed43e82c6d2742fe5988603cb8841324cc942b
Cr-Commit-Position: refs/heads/master@{#26560}
Review URL: https://codereview.chromium.org/
908883002
Cr-Commit-Position: refs/heads/master@{#26572}
dcarney [Wed, 11 Feb 2015 09:28:06 +0000 (01:28 -0800)]
remove undetectable strings
BUG=
Review URL: https://codereview.chromium.org/
916753002
Cr-Commit-Position: refs/heads/master@{#26571}
mstarzinger [Wed, 11 Feb 2015 09:25:37 +0000 (01:25 -0800)]
Remove obsolete Malloced::FatalProcessOutOfMemory.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
897213003
Cr-Commit-Position: refs/heads/master@{#26570}