svenpanne@chromium.org
e216ab1d40
Array.prototype.{every, filter, find, findIndex, forEach, map, some}: Use fresh primitive wrapper for calls.
...
When the receiver is a primitive value, it's cast to an Object before entering the loop. Instead, it should be cast to an Object for each function call while in the loop.
BUG=v8:3536
LOG=Y
R=arv@chromium.org , svenpanne@chromium.org , wingo@igalia.com
Review URL: https://codereview.chromium.org/553413002
Patch from Diego Pino <dpino@igalia.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 09:11:32 +00:00
bmeurer@chromium.org
985db1a3c8
[x86] Several small performance improvements.
...
- Generate
cmp reg, 0
instead of
test reg, -1
for word tests.
- Generate
mov reg, [stack slot]
add reg, reg
jo label
instead of
mov reg, [stack slot]
add reg, [stack slot]
jo label
for SMI tagging.
- Improve materialization of int32 constants on X86-64.
- Branch fusion fix for Word64And and Int64Sub on X86-64.
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/651383003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 09:05:40 +00:00
dcarney@chromium.org
b26632f655
Let FastCloneShallowObjectStub work with empty literal objects.
...
R=verwaest@chromium.org
LOG=N
BUG=417290
Review URL: https://codereview.chromium.org/655163002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 08:48:44 +00:00
ulan@chromium.org
ac1f429689
Remove test-api/Regress2107 since it doesn't test what Chrome does.
...
BUG=v8:3625
LOG=N
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/657033003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 08:44:00 +00:00
dcarney@chromium.org
c8a0ea9e3a
[turbofan] fix block mapping in code comments
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/635213003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 08:23:24 +00:00
neis@chromium.org
93d0e79d6e
Again reland "Refine expression typing, esp. by propagating range information."
...
This relands commit 24552.
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/650513003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 08:21:46 +00:00
bmeurer@chromium.org
f574d93e51
Revert "Reland "Refine expression typing, esp. by propagating range information.""
...
This reverts commit r24609 for breaking the
cctest/test-js-typed-lowering/Int32BitwiseBinops test.
TBR=rossberg@chromium.org ,neis@chromium.org
Review URL: https://codereview.chromium.org/656003002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 03:50:13 +00:00
balazs.kilvady@imgtec.com
2de468e854
MIPS: [turbofan] Optimize division/modulus by constant.
...
Port r24595 (d0f464e)
TEST=cctest,mjsunit,unittests
BUG=
R=paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/651223003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 17:26:14 +00:00
sigurds@chromium.org
b30c09d969
Fix performance bug in scheduler.
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/651233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 16:28:32 +00:00
neis@chromium.org
a7eb593147
Reland "Refine expression typing, esp. by propagating range information."
...
This relands commit 24552.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/653693002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 16:27:26 +00:00
yangguo@chromium.org
9a21ba499c
Catch exceptions thrown when enqueuing change records.
...
R=ishell@chromium.org
BUG=chromium:417709
LOG=N
Review URL: https://codereview.chromium.org/653593002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 14:46:11 +00:00
yangguo@chromium.org
1a90501909
Fix V8's default timer event logger.
...
This broke because the optimizing compiler thread no longer holds
Isolate::Current() in its TLS.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/655813002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 14:45:03 +00:00
ulan@chromium.org
dd49272c00
Weak Cells
...
Introduce an object that holds a weak reference.
Design document: http://goo.gl/9dSvvy .
BUG=
R=erik.corry@gmail.com
Review URL: https://codereview.chromium.org/640303006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 14:43:45 +00:00
jkummerow@chromium.org
75fe010f93
Always initialize key_type_ in AST nodes
...
BUG=chromium:423117
LOG=n
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/652183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 13:52:15 +00:00
yangguo@chromium.org
974f3dcfee
Correctly expand literal buffer for surrogate pairs.
...
R=jkummerow@chromium.org
BUG=chromium:423212
LOG=Y
Review URL: https://codereview.chromium.org/652743005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 13:25:19 +00:00
neis@chromium.org
327d3ae870
Add typing for Int32MulHigh.
...
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/656803003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:41:34 +00:00
neis@chromium.org
4587329594
Simple typing of machine operators.
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/658523002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:27:29 +00:00
jkummerow@chromium.org
d7482818a6
Fix de/serialization tests after r24592
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/654853002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:21:18 +00:00
machenbach@chromium.org
935702e655
Make release script cleanup more robust.
...
This is a work-around that checks out master if the
remembered branch is corrupt.
BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/659473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:19:32 +00:00
machenbach@chromium.org
6d69354154
Fix remote branch location in releases script (2).
...
BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/653533003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:10:48 +00:00
sigurds@chromium.org
4dc4b40925
Reland "Fix scheduler to correctly schedule nested diamonds".
...
Reland fix: Consume less memory.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/636233006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:08:55 +00:00
machenbach@chromium.org
ddd2d09a59
Fix remote branch location in releases script.
...
BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/653923002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 12:00:22 +00:00
bmeurer@chromium.org
81877a6440
[turbofan] Optimize division/modulus by constant.
...
TEST=cctest,mjsunit,unittests
R=dcarney@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/654833002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 11:57:06 +00:00
ishell@chromium.org
f58558d910
Preserve order of fields when doing slow-to-fast object migration.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/614883003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 11:03:35 +00:00
svenpanne@chromium.org
da0c38056f
Squeeze the layout of various AST node types.
...
The following AST node types were improved (in decreasing number of
importance for asm.js-like source code): Expression, VariableProxy,
Assignment, BinaryOperation, Declaration, Property, Call.
BUG=chromium:417697
LOG=y
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/646803004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 10:24:18 +00:00
jkummerow@chromium.org
b774d2068b
Always compile functions in the snapshot with deoptimization support.
...
This prevents an unnecessary deopt-reopt cycle due to type feedback
having been thrown away as part of recompiling with deopt support.
(For non-snapshotted functions this is not an issue.)
Bonus: Add missing space in --trace-ic output, and provide names for
PropertyDescriptor's methods, because passing anonymous functions to
SetUpLockedPrototype frightens and confuses our FuncNameInferrer.
R=hpayer@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/648243002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 09:59:24 +00:00
baptiste.afsa@arm.com
573ca15f48
[turbofan] Add support for shifted and rotated operands on ARM64.
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/642923003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 09:28:53 +00:00
dcarney@chromium.org
c469dcbc61
build fix
...
TBR=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/652163002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 09:22:21 +00:00
machenbach@chromium.org
4158c7b76a
Switch chromium roll script to git.
...
BUG=chromium:418923,chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/657483002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 09:00:16 +00:00
sigurds@chromium.org
b0596e9e44
Add control input to LoadField.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/649183003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 08:59:27 +00:00
dcarney@chromium.org
75d15894f6
[turbofan] remove some of the dependency of Instruction on Schedule
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/646393002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 08:51:22 +00:00
jarin@chromium.org
173b07faa9
[turbofan] Output schedule, instructions and register allocator in C1 visualizer format when --turbo-trace is specified.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/637313002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 08:43:33 +00:00
jarin@chromium.org
d75f736c11
[turbofan] Use register for instruction operands when SameAsFirst is specified.
...
As the register allocator cannot reuse spill slots, SameAsFirst
constraint means that we would have to do an expensive move to a
differen spill slot if we choose to spill. Forcing the operand
to a register is cheaper.
In zlib, we get >10% speed-up for ia32, >25% for x64.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/650083003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 08:34:20 +00:00
hpayer@chromium.org
2c18a51c72
Increase final idle time in idle notifcation of test test-api/Regress2107.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/653863002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 08:10:41 +00:00
bmeurer@chromium.org
8a00950303
[arm] Drop SMMLS support.
...
Apparently
SMMLS r, b, c, a
computes
r = ((a << 32) - b * c) >> 32
while the documentation is kinda misleading and states that it should
compute
r = a - ((b * c) >> 32)
The actual behavior is kinda useless, so we drop the instruction again.
TEST=cctest,unittests
TBR=dcarney@chromium.org
Review URL: https://codereview.chromium.org/654653004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 07:47:27 +00:00
bmeurer@chromium.org
8950e0a3de
[arm] Add support for SMMLA, SMMLS and SMMUL.
...
TEST=cctest,unittests
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/648283002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 05:03:04 +00:00
bmeurer@chromium.org
b472d9a045
MIPS: Add OWNERS file for compiler unittests.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/648413003
Patch from Paul Lind <paul.lind@imgtec.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 03:55:43 +00:00
bmeurer@chromium.org
a433541a65
Fix non-TF targets after r24546.
...
Fix mips64 and x87 builds.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/644463005
Patch from Paul Lind <paul.lind@imgtec.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 03:46:37 +00:00
weiliang.lin@intel.com
c704369eab
X87: Support for super assignments in for..in.
...
port r24560.
original commit message:
Support for super assignments in for..in.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/653823002
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 02:55:29 +00:00
paul.lind@imgtec.com
d9cda16c6a
MIPS: [turbofan] Make VisitBranch and friends to backend specific.
...
Port r24546 (c3443cd)
Original commit message:
This is required to fix a tricky branch fusion bug on ARM, which was
caused by the interaction between the architecture-independent and
architecture-specific parts of the InstructionSelector. In the end it
wasn't worth sharing a few common lines of code for the additional
complexity, especially if we also want to properly support architectures
without any dedicated flags register (i.e. MIPS).
TEST=mjsunit,unittests
BUG=
R=paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/644973003
Patch from Balazs Kilvady <balazs.kilvady@imgtec.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 23:31:59 +00:00
balazs.kilvady@imgtec.com
55f77c28ac
MIPS: Support for super assignments in for..in.
...
Port r24560 (ef1070b)
BUG=v8:3330
LOG=N
R=paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/641803003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 19:28:25 +00:00
hpayer@chromium.org
c7149e50a3
Fix IdleNotificationFinishMarking test on slow devices.
...
BUG=
TBR=ulan@chromium.org
Review URL: https://codereview.chromium.org/641533004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 18:54:20 +00:00
mstarzinger@chromium.org
25dbc2476c
Switch schedule early phase to basic blocks.
...
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/649203002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 16:32:12 +00:00
hpayer@chromium.org
d1e693a43a
Check if there is still time before finalizing an incremental collection.
...
BUG=
R=erik.corry@gmail.com , ulan@chromium.org
Review URL: https://codereview.chromium.org/629903003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 16:27:55 +00:00
sigurds@chromium.org
aa67d12f09
Revert "Fix scheduler to correctly schedule nested diamonds."
...
This reverts commit 0ab306041a6eba99fe5e2ef78251de137321f559.
"Fix" make scheduler run out of memory.
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/656473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 16:08:29 +00:00
rmcilroy@chromium.org
08941c0140
Refactor FrameAndConstantPoolScope and ConstantPoolUnavailableScope to be architecture independent
...
Move the FrameAndConstantPoolScope and ConstantPoolUnavailableScope out of the arm architecture directory to enable them to be used on all architectures.
R=rmcilroy@chromium.org
Review URL: https://codereview.chromium.org/609843002
Patch from André Baixo <baixo@google.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 14:41:33 +00:00
dusan.milosavljevic@imgtec.com
403dc88519
MIPS: Unbreak gn build, missing source files for MIPS tf.
...
TEST=
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/654583002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 14:18:10 +00:00
sigurds@chromium.org
0f5949d605
Fix scheduler to correctly schedule nested diamonds.
...
The scheduler rewires control based on the last *control*
node that appears in the schedule of a block. This is not
sufficient to account for dependencies.
This patch adds additional dependencies to floating control
nodes. Given a floating control node A, every non-control
dependency of every node B that depends on A is introduces
as an additional dependency of A.
This allows the scheduler to correctly schedule two
diamonds A, B, if their only correct schedule is to
schedule B into the ifTrue successor in A.
TEST=cctest/test-scheduler/NestedFloatingDiamonds
R=mstarzinger@chromium.org , titzer@chromium.org
Review URL: https://codereview.chromium.org/602083003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 13:07:49 +00:00
dslomov@chromium.org
952690a148
Support for super assignments in for..in.
...
R=ishell@chromium.org , arv@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/639243003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 12:46:46 +00:00
machenbach@chromium.org
791a3c4309
Make releases script ready for the new git workflow.
...
BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/646383002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 12:34:53 +00:00