platform/upstream/v8.git
9 years agoPPC: Only swap undefined for the global object if necessary in the prologue
mbrandy [Mon, 4 May 2015 15:33:50 +0000 (08:33 -0700)]
PPC: Only swap undefined for the global object if necessary in the prologue

Port fab3508062396c2768b5dcfa0fd7d40eba527d62

R=verwaest@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28203}

9 years agoFix smi scanning
verwaest [Mon, 4 May 2015 15:02:24 +0000 (08:02 -0700)]
Fix smi scanning

BUG=chromium:483176
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28202}

9 years agoMIPS: Skip test-simplified-lowering/RunNumberDivide_2_TruncatingToUint32.
akos.palfi [Mon, 4 May 2015 14:14:35 +0000 (07:14 -0700)]
MIPS: Skip test-simplified-lowering/RunNumberDivide_2_TruncatingToUint32.

This test fails on board, temporarily skip failing test until we resolve this issue.

NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28201}

9 years agoOnly swap undefined for the global object if necessary in the prologue
verwaest [Mon, 4 May 2015 13:38:50 +0000 (06:38 -0700)]
Only swap undefined for the global object if necessary in the prologue

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28200}

9 years agoNew insertion write barrier.
hpayer [Mon, 4 May 2015 13:12:25 +0000 (06:12 -0700)]
New insertion write barrier.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28199}

9 years ago[turbofan] Free TurboFan from the claws of ZoneList.
mstarzinger [Mon, 4 May 2015 12:54:08 +0000 (05:54 -0700)]
[turbofan] Free TurboFan from the claws of ZoneList.

This removes the last occurence of the hand-written ZoneList from the
compiler directory and uses ZoneVector everywhere instead.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28198}

9 years ago[release-tools] Tool to find related commits
hablich [Mon, 4 May 2015 12:20:10 +0000 (05:20 -0700)]
[release-tools] Tool to find related commits

usage: This tool analyzes the commit range between <of> and <until>. It finds commits which belong together e.g. Implement/Revert pairs and Implement/Port/Revert triples. All supplied hashes need to be from the same branch e.g. master.

Example for M42: ./search_related_commits.py --prettyprint --separator e0110920d6f98f0ba2ac0d680f635ae3f094a04e b856e8785933a2a9cd884ab8966fee0e7098927e b1c2a3495624a9776c7df865d972886f2d078c10

BUG=
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28197}

9 years agoDon't perform marking barrier for weak cell values.
hpayer [Mon, 4 May 2015 12:15:38 +0000 (05:15 -0700)]
Don't perform marking barrier for weak cell values.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28196}

9 years ago[turbofan] Add SimplifiedOperator::Allocate operator.
mstarzinger [Mon, 4 May 2015 12:07:12 +0000 (05:07 -0700)]
[turbofan] Add SimplifiedOperator::Allocate operator.

This introduces a simplified allocation operator which can be used to
model inline allocations in TurboFan. It is currently used for context
allocations, but still disabled because change lowering introduces
floating allocations outside the effect chain that interfere.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28195}

9 years agoMIPS: Do not use the 64-bit floor and truncate instructions in fp32 mode.
akos.palfi [Mon, 4 May 2015 12:05:58 +0000 (05:05 -0700)]
MIPS: Do not use the 64-bit floor and truncate instructions in fp32 mode.

These instructions have unpredictable result when the processor is in fp32 mode.

BUG=

TEST=mjsunit/math-floor-global,math-floor-local,math-floor-part1

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

Cr-Commit-Position: refs/heads/master@{#28194}

9 years agoReland "Wrap v8natives.js into a function."
yangguo [Mon, 4 May 2015 11:17:00 +0000 (04:17 -0700)]
Reland "Wrap v8natives.js into a function."

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

Cr-Commit-Position: refs/heads/master@{#28193}

9 years ago[turbofan] Small fixes to PipelineStatistics. Collect statistics in tests.
titzer [Mon, 4 May 2015 11:05:45 +0000 (04:05 -0700)]
[turbofan] Small fixes to PipelineStatistics. Collect statistics in tests.

R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28192}

9 years agoExtract Signature from src/compiler/machine-type.h to src/signature.h
titzer [Mon, 4 May 2015 10:11:50 +0000 (03:11 -0700)]
Extract Signature from src/compiler/machine-type.h to src/signature.h

R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28191}

9 years agoSet inferred name of bound function to empty string.
yangguo [Mon, 4 May 2015 09:55:41 +0000 (02:55 -0700)]
Set inferred name of bound function to empty string.

Otherwise it's whatever the js minifier assigns it to.

R=jkummerow@chromium.org
BUG=chromium:484077
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28190}

9 years agoX87: VectorICs: built-in function apply should use an IC.
chunyang.dai [Mon, 4 May 2015 03:40:23 +0000 (20:40 -0700)]
X87: VectorICs: built-in function apply should use an IC.

port 83a0af55009548238a2ff6ef71c3387a49da0a88 (r28165).

original commit message:

   VectorICs: built-in function apply should use an IC.

   Handled a TODO that sent builtin function apply to the runtime on property get.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28189}

9 years agoX87: Use a stub in crankshaft for grow store arrays.
chunyang.dai [Mon, 4 May 2015 03:39:14 +0000 (20:39 -0700)]
X87: Use a stub in crankshaft for grow store arrays.

port fb8e6136387339e8089bbf61d4ffee50e4cd957e (r28163).

original commit message:

 We were deopting without learning anything.

 This is a rebase/reland of https://codereview.chromium.org/368263003

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28188}

9 years agoRevert of [V8] Use previous token location as EOS token location (patchset #2 id...
machenbach [Sun, 3 May 2015 12:47:45 +0000 (05:47 -0700)]
Revert of [V8] Use previous token location as EOS token location (patchset #2 id:20001 of https://codereview.chromium.org/1100993003/)

Reason for revert:
[Sheriff] Speculative revert. This seems to block the current roll:
https://codereview.chromium.org/1124463003/

This bisect also points at this CL:
https://codereview.chromium.org/1124523002/

Please prepare the chromium side tests before a reland.

Original issue's description:
> [V8] Use previous token location as EOS token location
>
> EOS token location is useless for users and messages.js are not ready for its location.
> With this CL we use location of token before EOS for it.
>
> LOG=Y
> BUG=chromium:480652
> R=yurys@chromium.org,yangguo@chromium.org
>
> Committed: https://crrev.com/81afc9313ce84350bcba9f84b255a77e97cd3726
> Cr-Commit-Position: refs/heads/master@{#28164}

TBR=yangguo@chromium.org,yurys@chromium.org,kozyatinskiy@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:480652

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

Cr-Commit-Position: refs/heads/master@{#28187}

9 years agoUpdate V8 DEPS.
v8-autoroll [Sat, 2 May 2015 03:28:31 +0000 (20:28 -0700)]
Update V8 DEPS.

Rolling v8/tools/clang to a8549b6dd82c3b35a06f9894fa7abdcbbf0bd6f5

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28186}

9 years agoMost of the issues so far encountered with the greedy allocator rest with the splitti...
mtrofin [Fri, 1 May 2015 15:31:29 +0000 (08:31 -0700)]
Most of the issues so far encountered with the greedy allocator rest with the splitting mechanism. This change has:

- all RegisterAllocatorTest unit tests passing, when unittest has the flags: --turbo-filter=* --always-opt --turbo-deoptimization --turbo-verify-allocation --turbo_greedy_regalloc

./tools/run-tests.py passing when providing --turbo_greedy_regalloc, but still having some failing (more than the "normal" 43) when passing all the flags. I realize just passing --turbo_greedy_regalloc does not provide full coverage, but it did uncover some bugs, still

The CL centralizes the computing of split points (for "losing" intervals) with the determination of whether an interval is irreducible, and, therefore, of infinite spill weight (if an interval can't be split or spilled, it can't lose in weight comparison because there's nothing we can do to it and make progress).

There are allocator efficiency opportunities I haven't yet taken (this refers to the code itself, not the generated code). For example, the above split/spill computation can be cached. My plan is to defer this to at least after we see numbers showing the value of the algorithm, and potentially do at the same time we remove the linear algorithm, if that is still the plan. At that time, we can look where some APIs best belong (e.g. weight computation may fully live and cache itself on LiveRange)

In addition, the CL adds a few debug-time-only Print APIs I found very useful:  on demand (while in GDB) dump of the code, live range info (use positions & operand description, and intervals), etc.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28185}

9 years agoUpdate V8 DEPS.
v8-autoroll [Fri, 1 May 2015 03:29:13 +0000 (20:29 -0700)]
Update V8 DEPS.

Rolling v8/third_party/icu to f8c0e585b0a046d83d72b5d37356cb50d5b2031a

Rolling v8/tools/clang to 15ea3e6cc23fd6ff5545bd939ee153b97807668d

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28184}

9 years agoMIPS: Fix 'Detect simple tail calls'.
balazs.kilvady [Thu, 30 Apr 2015 18:52:45 +0000 (11:52 -0700)]
MIPS: Fix 'Detect simple tail calls'.

4b122b7504ab458faa4132c338809b40147751bf

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28183}

9 years agoRevert of Wrap v8natives.js into a function. (patchset #2 id:20001 of https://coderev...
machenbach [Thu, 30 Apr 2015 17:33:13 +0000 (10:33 -0700)]
Revert of Wrap v8natives.js into a function. (patchset #2 id:20001 of https://codereview.chromium.org/1109343004/)

Reason for revert:
[Sheriff] Speculative revert for breaking layout tests, e.g.:
http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2682

See. e.g.:
https://storage.googleapis.com/chromium-layout-test-archives/V8-Blink_Win/3130/layout-test-results/http/tests/websocket/workers/worker-reload-diff.txt

Original issue's description:
> Wrap v8natives.js into a function.
>
> R=jkummerow@chromium.org
>
> Committed: https://crrev.com/ee1b39b4303829e6c6805fe8b2f2602b13f6463a
> Cr-Commit-Position: refs/heads/master@{#28174}

TBR=jkummerow@chromium.org,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28182}

9 years agoMIPS: Add min/max suffixed variants.
dusan.milosavljevic [Thu, 30 Apr 2015 16:43:00 +0000 (09:43 -0700)]
MIPS: Add min/max suffixed variants.

TEST=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28181}

9 years agoMigrate error messages, part 6. (string.js and date.js)
yangguo [Thu, 30 Apr 2015 16:22:00 +0000 (09:22 -0700)]
Migrate error messages, part 6. (string.js and date.js)

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28180}

9 years agoRemove unused Module-related AST nodes and associated codegen
adamk [Thu, 30 Apr 2015 16:20:51 +0000 (09:20 -0700)]
Remove unused Module-related AST nodes and associated codegen

BUG=v8:1569
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28179}

9 years agoPPC: VectorICs: built-in function apply should use an IC.
mbrandy [Thu, 30 Apr 2015 16:18:09 +0000 (09:18 -0700)]
PPC: VectorICs: built-in function apply should use an IC.

Port 83a0af55009548238a2ff6ef71c3387a49da0a88

Original commit message:
Handled a TODO that sent builtin function apply to the runtime on property get.

R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28178}

9 years agoPPC: Use a stub in crankshaft for grow store arrays.
mbrandy [Thu, 30 Apr 2015 15:43:00 +0000 (08:43 -0700)]
PPC: Use a stub in crankshaft for grow store arrays.

Port fb8e6136387339e8089bbf61d4ffee50e4cd957e

Original commit message:
We were deopting without learning anything.

This is a rebase/reland of https://codereview.chromium.org/368263003

BUG=
R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com

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

Cr-Commit-Position: refs/heads/master@{#28177}

9 years agoCache experimental natives sources as external strings.
yangguo [Thu, 30 Apr 2015 15:10:43 +0000 (08:10 -0700)]
Cache experimental natives sources as external strings.

R=ulan@chromium.org
BUG=v8:4054
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28176}

9 years agoDisable stack trace preprocessing.
yangguo [Thu, 30 Apr 2015 15:04:17 +0000 (08:04 -0700)]
Disable stack trace preprocessing.

This has to wait until issue 4065 has been fixed.

R=ulan@chromium.org
BUG=v8:2340, v8:4065, chromium:482312
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28175}

9 years agoWrap v8natives.js into a function.
yangguo [Thu, 30 Apr 2015 14:59:01 +0000 (07:59 -0700)]
Wrap v8natives.js into a function.

R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28174}

9 years ago[test] Remove pesky MachineCallHelper from inheritance chain.
mstarzinger [Thu, 30 Apr 2015 14:51:50 +0000 (07:51 -0700)]
[test] Remove pesky MachineCallHelper from inheritance chain.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28173}

9 years agoAllow TurboFan to compile more methods.
titzer [Thu, 30 Apr 2015 14:50:41 +0000 (07:50 -0700)]
Allow TurboFan to compile more methods.

Reorganize some bailout conditions to be after the decision to use TurboFan.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28172}

9 years agoMark instruction blocks with spills (for frame elision).
svenpanne [Thu, 30 Apr 2015 14:49:32 +0000 (07:49 -0700)]
Mark instruction blocks with spills (for frame elision).

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

Cr-Commit-Position: refs/heads/master@{#28171}

9 years agoInitialize typed array content for rempio2result during bootstrapping.
yangguo [Thu, 30 Apr 2015 14:32:24 +0000 (07:32 -0700)]
Initialize typed array content for rempio2result during bootstrapping.

This is to pacify MSAN.

R=mvstanton@chromium.org
BUG=465759
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28170}

9 years agoFix typo in builtins-x87, introduced in crrev.com/1107233004.
vogelheim [Thu, 30 Apr 2015 14:24:39 +0000 (07:24 -0700)]
Fix typo in builtins-x87, introduced in crrev.com/1107233004.

BUG=470930
LOG=N
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28169}

9 years agoUnify internal and external typed arrays a bit
jochen [Thu, 30 Apr 2015 13:46:27 +0000 (06:46 -0700)]
Unify internal and external typed arrays a bit

Just give internal ones an ArrayBuffer with a NULL backing store. This
simplifies the access checks a lot.

BUG=v8:3996
R=hpayer@chromium.org,verwaest@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28168}

9 years ago[test] make instruction sequence test emit cfgs more like the scheduler
dcarney [Thu, 30 Apr 2015 13:39:11 +0000 (06:39 -0700)]
[test] make instruction sequence test emit cfgs more like the scheduler

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28167}

9 years ago[test] Mark test as flaky.
machenbach [Thu, 30 Apr 2015 13:25:01 +0000 (06:25 -0700)]
[test] Mark test as flaky.

BUG=v8:3803
LOG=n
TBR=mstarzinger@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28166}

9 years agoVectorICs: built-in function apply should use an IC.
mvstanton [Thu, 30 Apr 2015 13:08:43 +0000 (06:08 -0700)]
VectorICs: built-in function apply should use an IC.

Handled a TODO that sent builtin function apply to the runtime on property get.

R=yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28165}

9 years ago[V8] Use previous token location as EOS token location
kozyatinskiy [Thu, 30 Apr 2015 12:44:52 +0000 (05:44 -0700)]
[V8] Use previous token location as EOS token location

EOS token location is useless for users and messages.js are not ready for its location.
With this CL we use location of token before EOS for it.

LOG=Y
BUG=chromium:480652
R=yurys@chromium.org,yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28164}

9 years agoUse a stub in crankshaft for grow store arrays.
mvstanton [Thu, 30 Apr 2015 12:34:02 +0000 (05:34 -0700)]
Use a stub in crankshaft for grow store arrays.

We were deopting without learning anything.

This is a rebase/reland of https://codereview.chromium.org/368263003

BUG=v8:3417
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28163}

9 years agoImplement kToBeExecutedOnceCodeAge.
vogelheim [Thu, 30 Apr 2015 12:31:38 +0000 (05:31 -0700)]
Implement kToBeExecutedOnceCodeAge.

An initial 'code age' state that will turn into a 'pre-aging' code age only after it was executed the first time.

BUG=470930
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#28162}

9 years agoAdd flag to print stack-trace after n allocations.
ulan [Thu, 30 Apr 2015 12:14:34 +0000 (05:14 -0700)]
Add flag to print stack-trace after n allocations.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28161}

9 years ago[test] Remove DirectGraphBuilder helper.
mstarzinger [Thu, 30 Apr 2015 12:06:20 +0000 (05:06 -0700)]
[test] Remove DirectGraphBuilder helper.

R=bmeurer@chromium.org
TEST=cctest/test-js-context-specialization

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

Cr-Commit-Position: refs/heads/master@{#28160}

9 years ago[strong] Disallow implicit conversions for add
conradw [Thu, 30 Apr 2015 11:46:04 +0000 (04:46 -0700)]
[strong] Disallow implicit conversions for add

Implements the strong mode proposal's restrictions on implicit conversions
for the binary + operator. Test suite is also cleaned up/refactored to allow
easier testing of the comparison operators in the future.

BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28159}

9 years agoFix error messages for extra files in js2c.py
domenic [Thu, 30 Apr 2015 11:24:09 +0000 (04:24 -0700)]
Fix error messages for extra files in js2c.py

https://codereview.chromium.org/1117663002 contained a copy-paste
error; this is a follow-up fixing that so that error messages now
contain the correct filename when using the --extra option to js2c.py.

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

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

Cr-Commit-Position: refs/heads/master@{#28158}

9 years ago[turbofan] resolve all references before populating reference maps
dcarney [Thu, 30 Apr 2015 11:07:54 +0000 (04:07 -0700)]
[turbofan] resolve all references before populating reference maps

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28157}

9 years agoReland "Remove the weak list of array buffers"
jochen [Thu, 30 Apr 2015 10:57:44 +0000 (03:57 -0700)]
Reland "Remove the weak list of array buffers"

Original issue's description:
> Remove the weak list of array buffers
>
> Instead, collect live array buffers during marking and free pointers we
> no longer found.
>
> BUG=v8:3996
> R=hpayer@chromium.org
> LOG=n

BUG=v8:3996
TBR=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28156}

9 years agodrop interalization of strings entering global constant slots
dcarney [Thu, 30 Apr 2015 10:50:46 +0000 (03:50 -0700)]
drop interalization of strings entering global constant slots

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28155}

9 years agoJSON serializer should fail gracefully for special value wrappers.
yangguo [Thu, 30 Apr 2015 10:02:15 +0000 (03:02 -0700)]
JSON serializer should fail gracefully for special value wrappers.

R=mstarzinger@chromium.org
BUG=chromium:471702
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28154}

9 years ago[turbofan] Don't spread global flag checks all over the compiler code.
bmeurer [Thu, 30 Apr 2015 09:56:24 +0000 (02:56 -0700)]
[turbofan] Don't spread global flag checks all over the compiler code.

Better encapsulate the source position handling in TurboFan.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28153}

9 years agoBump Isolate::New back to deprecate soon
Jochen Eisinger [Thu, 30 Apr 2015 09:44:45 +0000 (11:44 +0200)]
Bump Isolate::New back to deprecate soon

R=machenbach@chromium.org
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28152}

9 years agoShow function <name>() { [native code] } for built-in classes
domenic [Thu, 30 Apr 2015 09:29:33 +0000 (02:29 -0700)]
Show function <name>() { [native code] } for built-in classes

The existing logic would show the full source for all classes, even
built-in ones.

R=arv@chromium.org,dslomov@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28151}

9 years agoDetect simple tail calls
svenpanne [Thu, 30 Apr 2015 09:10:21 +0000 (02:10 -0700)]
Detect simple tail calls

This CL contains the first steps towards tail call optimization:

  * Structurally detect tail calls during instruction selection,
    looking for special return/call combinations.

  * Added new architecture-specific instructions for tail calls which
    jump instead of call and take care of frame adjustment.

  * Moved some code around.

Currently we restrict tail calls to callees which only use registers
for arguments/return value and to call sites which are explicitly
marked as being OK for tail calls. This excludes, among other things,
call sites in sloppy JS functions and our IC machinery (both need in
general to be able to access the caller's frame).

All this is behind a flag --turbo-tail-calls, which is currently off
by default, so it can easily be toggled.

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

Cr-Commit-Position: refs/heads/master@{#28150}

9 years ago[test] Add avx2 bot to CQ.
machenbach [Thu, 30 Apr 2015 08:47:43 +0000 (01:47 -0700)]
[test] Add avx2 bot to CQ.

BUG=chromium:478460
LOG=n
NOTRY=true
TBR=bmeurer@chromium.org, mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28149}

9 years agoRevert of Remove the weak list of array buffers (patchset #8 id:140001 of https:...
machenbach [Thu, 30 Apr 2015 08:38:18 +0000 (01:38 -0700)]
Revert of Remove the weak list of array buffers (patchset #8 id:140001 of https://codereview.chromium.org/1114563002/)

Reason for revert:
[Sheriff] Crashes in layout tests:
https://chromegw.corp.google.com/i/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2668

Original issue's description:
> Remove the weak list of array buffers
>
> Instead, collect live array buffers during marking and free pointers we
> no longer found.
>
> BUG=v8:3996
> R=hpayer@chromium.org
> LOG=n
>
> Committed: https://crrev.com/2d39709cf5ee17637f6f2d75380a9e61ae0b342b
> Cr-Commit-Position: refs/heads/master@{#28132}

TBR=dslomov@chromium.org,hpayer@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3996

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

Cr-Commit-Position: refs/heads/master@{#28148}

9 years ago[base] Drop obsolete Thread::YieldCPU.
bmeurer [Thu, 30 Apr 2015 08:08:46 +0000 (01:08 -0700)]
[base] Drop obsolete Thread::YieldCPU.

The method is not used anywhere, and it is a bad idea in general anyway.
If you see a need to call YieldCPU, then you're code is probably in need
of a redesign!

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28147}

9 years agoAdd shift to InternalArray and InternalPackedArray
domenic [Thu, 30 Apr 2015 08:07:13 +0000 (01:07 -0700)]
Add shift to InternalArray and InternalPackedArray

It's useful for queue-like data structures.

R=yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28146}

9 years agoFix AIX compiler warning
michael_dawson [Thu, 30 Apr 2015 08:01:50 +0000 (01:01 -0700)]
Fix AIX compiler warning

Fix AIX compiler warning indicating that variable may not be
initialized

modified:   src/heap/heap.cc

R=danno@chromium.org, svenpanne@chromium.org, mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28145}

9 years agoSwitch to larger TOC on AIX for unitttests
michael_dawson [Thu, 30 Apr 2015 07:50:22 +0000 (00:50 -0700)]
Switch to larger TOC on AIX for unitttests

Switch to larger TOC on AIX for unitttests as the size has grown
such that it no longer compiles with the default TOC size

modified:   unittests.gyp

R=danno@chromium.org, svenpanne@chromium.org, mbrandy@us.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28144}

9 years agoMIPS: Add rounding support in simulator and RINT instruction.
Djordje.Pesic [Thu, 30 Apr 2015 06:29:08 +0000 (23:29 -0700)]
MIPS: Add rounding support in simulator and RINT instruction.

Added rounding according to fcsr, CVT_W_D and RINT.D instruction in assembler, dissasembler and simulator and wrote appropiate tests.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28143}

9 years ago[test-runner] Enable specification of trybots.
machenbach [Thu, 30 Apr 2015 05:12:33 +0000 (22:12 -0700)]
[test-runner] Enable specification of trybots.

Now it's possible to specify the desired trybots for perf
tries, e.g.:

tools/try_perf.py --linux64_haswell octane sunspider

BUG=chromium:478460
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#28142}

9 years agoUpdate V8 DEPS.
v8-autoroll [Thu, 30 Apr 2015 03:32:51 +0000 (20:32 -0700)]
Update V8 DEPS.

Rolling v8/build/gyp to 0bb67471bca068996e15b56738fa4824dfa19de0

Rolling v8/buildtools to 15f5fc6fdb1795e2b99f66e5bc6c01e9fb62b436

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28141}

9 years agoReland: [turbofan] add MachineType to AllocatedOperand
dcarney [Wed, 29 Apr 2015 19:36:16 +0000 (12:36 -0700)]
Reland: [turbofan] add MachineType to AllocatedOperand

- allows the optimization of emitted gap move code since the representation of the value in the register is known
- necessary preparation for vector register allocation
- prepare for slot sharing for any value of the same byte width

TBR=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28140}

9 years agoRevert of [turbofan] add MachineType to AllocatedOperand (patchset #17 id:310001...
machenbach [Wed, 29 Apr 2015 18:28:38 +0000 (11:28 -0700)]
Revert of [turbofan] add MachineType to AllocatedOperand (patchset #17 id:310001 of https://codereview.chromium.org/1087793002/)

Reason for revert:
[Sheriff] Breaks compile on chromium asan and v8 msan:
http://build.chromium.org/p/client.v8/builders/Linux%20ASAN%20Builder/builds/3446
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/2085

Original issue's description:
> [turbofan] add MachineType to AllocatedOperand
>
> - allows the optimization of emitted gap move code since the representation of the value in the register is known
> - necessary preparation for vector register allocation
> - prepare for slot sharing for any value of the same byte width
>
> BUG=
>
> Committed: https://crrev.com/3a025d1ab6437559f86a464767aa03d2d9789f6f
> Cr-Commit-Position: refs/heads/master@{#28137}

TBR=jarin@chromium.org,dcarney@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28139}

9 years ago[test] Remove deprecated GraphTester helper class.
mstarzinger [Wed, 29 Apr 2015 15:16:05 +0000 (08:16 -0700)]
[test] Remove deprecated GraphTester helper class.

R=bmeurer@chromium.org
TEST=cctest/test-node

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

Cr-Commit-Position: refs/heads/master@{#28138}

9 years ago[turbofan] add MachineType to AllocatedOperand
dcarney [Wed, 29 Apr 2015 14:46:10 +0000 (07:46 -0700)]
[turbofan] add MachineType to AllocatedOperand

- allows the optimization of emitted gap move code since the representation of the value in the register is known
- necessary preparation for vector register allocation
- prepare for slot sharing for any value of the same byte width

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28137}

9 years ago[test] Turn compiler/test-node-cache into a unit test.
mstarzinger [Wed, 29 Apr 2015 14:39:55 +0000 (07:39 -0700)]
[test] Turn compiler/test-node-cache into a unit test.

R=jarin@chromium.org
TEST=unittests/NodeCacheTest

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

Cr-Commit-Position: refs/heads/master@{#28136}

9 years agoPrint PID and isolate address in gc traces.
hpayer [Wed, 29 Apr 2015 14:29:39 +0000 (07:29 -0700)]
Print PID and isolate address in gc traces.

Note, that it also moves incremental marking traces behind the --trace-incremental-marking flag.

Other PrintF's of the GC should be moved as well to PrintPIDAndIsolate.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28135}

9 years ago[test] Remove deprecated cctest/test-node-algorithm tests.
mstarzinger [Wed, 29 Apr 2015 14:13:17 +0000 (07:13 -0700)]
[test] Remove deprecated cctest/test-node-algorithm tests.

R=jarin@chromium.org
TEST=cctest/test-graph-visualizer

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

Cr-Commit-Position: refs/heads/master@{#28134}

9 years agoDon't run macros or jsmin on extra snapshot scripts
domenic [Wed, 29 Apr 2015 14:01:35 +0000 (07:01 -0700)]
Don't run macros or jsmin on extra snapshot scripts

js2c.py now distinguishes between the JS internal sources and any
extra scripts passed in. The latter only get validation and
comment/trailing whitespace removal applied now.

Also added a --js option to js2c.py, which will output a JS file
instead of a C++ file, for debugging. (I got tired of finding the
generated .cc file and extracting its byte array so that I could feed
it to a separate helper script I wrote.)

R=yangguo@chromium.org, jochen@chromium.org
BUG=v8:4064
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28133}

9 years agoRemove the weak list of array buffers
jochen [Wed, 29 Apr 2015 13:04:43 +0000 (06:04 -0700)]
Remove the weak list of array buffers

Instead, collect live array buffers during marking and free pointers we
no longer found.

BUG=v8:3996
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28132}

9 years agoDestructuring: add more parssing tests.
dslomov [Wed, 29 Apr 2015 13:03:26 +0000 (06:03 -0700)]
Destructuring: add more parssing tests.

R=arv@chromium.org
BUG=v8:811
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28131}

9 years agoMIPS: Followup 'Fix Add HArrayBufferNotNeutered instruction'.
balazs.kilvady [Wed, 29 Apr 2015 11:46:49 +0000 (04:46 -0700)]
MIPS: Followup 'Fix Add HArrayBufferNotNeutered instruction'.

Followup fix of nit discussed in Issue 1111003002.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28130}

9 years ago[turbofan] Fix returns for large-sized frames in TurboFan ia32 and x64 backends.
titzer [Wed, 29 Apr 2015 11:32:17 +0000 (04:32 -0700)]
[turbofan] Fix returns for large-sized frames in TurboFan ia32 and x64 backends.

R=dcarney@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28129}

9 years agoX87: Don't MISS if you read the hole from certain FastHoley arrays.
chunyang.dai [Wed, 29 Apr 2015 10:34:19 +0000 (03:34 -0700)]
X87: Don't MISS if you read the hole from certain FastHoley arrays.

port caeb9004f0bfc2a916fc63e9d27100a3110016d4 (r28056)

original commit message:
    If the array's map is the initial FastHoley array map, and the array prototype
    chain is undisturbed and empty of elements, then keyed loads can convert the
    load of a hole to undefined.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28128}

9 years agoPass ArrayBuffer::Allocator via Isolate::CreateParams
jochen [Wed, 29 Apr 2015 09:54:34 +0000 (02:54 -0700)]
Pass ArrayBuffer::Allocator via Isolate::CreateParams

We shouldn't have shared state between isolates by default. The embedder
is free to pass the same allocator to all isolates it creates.

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

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

Cr-Commit-Position: refs/heads/master@{#28127}

9 years agoFix unobservable constructor replacement on prototype maps
jkummerow [Wed, 29 Apr 2015 09:31:38 +0000 (02:31 -0700)]
Fix unobservable constructor replacement on prototype maps

BUG=chromium:478522
LOG=y
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28126}

9 years ago[turbofan] Correctly handle illegal redeclarations.
mstarzinger [Wed, 29 Apr 2015 09:22:35 +0000 (02:22 -0700)]
[turbofan] Correctly handle illegal redeclarations.

R=titzer@chromium.org
TEST=mjsunit/const-redecl

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

Cr-Commit-Position: refs/heads/master@{#28125}

9 years agoFix stale pointer issue in heap snapshot generator
jkummerow [Wed, 29 Apr 2015 09:03:06 +0000 (02:03 -0700)]
Fix stale pointer issue in heap snapshot generator

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

Cr-Commit-Position: refs/heads/master@{#28124}

9 years agoAdd comment to justify AllowDeferredHandleDereference in WeakCell factory.
ulan [Wed, 29 Apr 2015 08:36:05 +0000 (01:36 -0700)]
Add comment to justify AllowDeferredHandleDereference in WeakCell factory.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28123}

9 years ago[test] Skip tests on msan.
machenbach [Wed, 29 Apr 2015 07:19:49 +0000 (00:19 -0700)]
[test] Skip tests on msan.

NOTRY=true
BUG=chromium:425187
LOG=n
TBR=Sven Panne, titzer

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

Cr-Commit-Position: refs/heads/master@{#28122}

9 years agoRevert of deprecate non-phantom weak callbacks (patchset #1 id:1 of https://coderevie...
machenbach [Wed, 29 Apr 2015 05:57:08 +0000 (22:57 -0700)]
Revert of deprecate non-phantom weak callbacks (patchset #1 id:1 of https://codereview.chromium.org/1103173002/)

Reason for revert:
[Sheriff] This is still used and now blocks the roll here:
http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/47889

Original issue's description:
> Reland: deprecate non-phantom weak callbacks
>
> BUG=
>
> Committed: https://crrev.com/3be656fb55ad49834ec8ec0a57ba858bb1b21f37
> Cr-Commit-Position: refs/heads/master@{#28094}

TBR=jochen@chromium.org,dcarney@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28121}

9 years agoCalculate blocks needing a frame and frame (de)construction sites.
svenpanne [Wed, 29 Apr 2015 05:54:41 +0000 (22:54 -0700)]
Calculate blocks needing a frame and frame (de)construction sites.

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

Cr-Commit-Position: refs/heads/master@{#28120}

9 years agoUpdate V8 DEPS.
v8-autoroll [Wed, 29 Apr 2015 03:28:37 +0000 (20:28 -0700)]
Update V8 DEPS.

Rolling v8/tools/clang to 44f7f0bbbce9e581d9328e80d5b0ae88efbc3db4

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28119}

9 years agoFix JSArrayBuffer for big endian.
mbrandy [Tue, 28 Apr 2015 20:00:44 +0000 (13:00 -0700)]
Fix JSArrayBuffer for big endian.

BUG=
R=jochen@chromium.org, dcarney@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com

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

Cr-Commit-Position: refs/heads/master@{#28118}

9 years agoMIPS: Fix 'Add HArrayBufferNotNeutered instruction'.
balazs.kilvady [Tue, 28 Apr 2015 17:20:49 +0000 (10:20 -0700)]
MIPS: Fix 'Add HArrayBufferNotNeutered instruction'.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28117}

9 years agoPPC: Fix HArrayBufferNotNeutered instruction
mbrandy [Tue, 28 Apr 2015 17:19:40 +0000 (10:19 -0700)]
PPC: Fix HArrayBufferNotNeutered instruction

Fix faulty condition register usage after andi.

BUG=
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com, jochen@chromium.org, bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28116}

9 years agoImport webkit class tests
arv [Tue, 28 Apr 2015 16:42:35 +0000 (09:42 -0700)]
Import webkit class tests

BUG=v8:3330
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28115}

9 years ago[es6] Fix return checking in derived constructors
arv [Tue, 28 Apr 2015 16:09:21 +0000 (09:09 -0700)]
[es6] Fix return checking in derived constructors

In a derived class constructor in case undefined is returned, we
should return the receiver. If the return is any other value type
we should throw a TypeError.

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

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

Cr-Commit-Position: refs/heads/master@{#28114}

9 years agoMIPS: Fix FP load/store with large offsets from base register.
paul.lind [Tue, 28 Apr 2015 15:42:26 +0000 (08:42 -0700)]
MIPS: Fix FP load/store with large offsets from base register.

BUG=481519
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#28113}

9 years agoParsing binding patterns.
dslomov [Tue, 28 Apr 2015 15:15:03 +0000 (08:15 -0700)]
Parsing binding patterns.

Just parsing, no desugaring yet.

R=arv@chromium.org,rossberg@chromium.org
BUG=v8:811
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28112}

9 years agoUse "define" instead of "const" for natives macros
domenic [Tue, 28 Apr 2015 14:58:15 +0000 (07:58 -0700)]
Use "define" instead of "const" for natives macros

The use of "const" prevented the actual JavaScript const keyword from
functioning as intended.

R=jochen@chromium.org,yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28111}

9 years agoAllow extra library files to be snapshotted
domenic [Tue, 28 Apr 2015 14:55:58 +0000 (07:55 -0700)]
Allow extra library files to be snapshotted

BUG=
R=jochen@chromium.org, yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28110}

9 years agoAdd HArrayBufferNotNeutered instruction
jochen [Tue, 28 Apr 2015 13:42:54 +0000 (06:42 -0700)]
Add HArrayBufferNotNeutered instruction

This instruction can be hoisted out of loops even though it contains a branch.

BUG=v8:3996
R=bmeurer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28109}

9 years agoAdd missing stdlib include for sample
Jochen Eisinger [Tue, 28 Apr 2015 12:28:31 +0000 (14:28 +0200)]
Add missing stdlib include for sample

BUG=none
R=machenbach@chromium.org, machenbach@chromium.or
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28108}

9 years agoShrink new space and uncommit from space in idle notification during long idle times.
hpayer [Tue, 28 Apr 2015 12:18:22 +0000 (05:18 -0700)]
Shrink new space and uncommit from space in idle notification during long idle times.

BUG=chromium:481811
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28107}

9 years agoUpdate _MSC_FULL_VER for 'final' RC bug workaround
scottmg [Tue, 28 Apr 2015 11:33:40 +0000 (04:33 -0700)]
Update _MSC_FULL_VER for 'final' RC bug workaround

Repeat of https://codereview.chromium.org/1084763002/.

The 'final' RC has changed the version number, but the bug will not be
fixed until RTM.

LOG=N
R=jochen@chromium.org
BUG=chromium:440500

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

Cr-Commit-Position: refs/heads/master@{#28106}

9 years agoRemove support for malloc'd typed arrays
jochen [Tue, 28 Apr 2015 11:25:25 +0000 (04:25 -0700)]
Remove support for malloc'd typed arrays

All typed arrays should be allocated through the array buffer allocator

BUG=none
R=dcarney@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28105}

9 years ago[strong] Disallow implicit conversions for bitwise ops, shifts
conradw [Tue, 28 Apr 2015 11:20:13 +0000 (04:20 -0700)]
[strong] Disallow implicit conversions for bitwise ops, shifts

See https://codereview.chromium.org/1092353002/

Due to parser rewrites, also implements restrictions for unary ~.

Still to come, implementing restrictions for binary + and comparison.

BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#28104}