Commit Graph

19248 Commits

Author SHA1 Message Date
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
mstarzinger@chromium.org
6d6d727cd4 Mark some test262 cases as known failures after r24495.
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 11:11:15 +00:00
bmeurer@chromium.org
5c1f7b5aa1 [turbofan] Optimize Int32Mod by power-of-two.
TEST=mjsunit/asm/int32-tmod,unittests
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 11:09:32 +00:00
neis@chromium.org
a2f4963abd Revert "Refine expression typing, esp. by propagating range information."
This reverts commit 24552.

TBR=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 10:48:01 +00:00
neis@chromium.org
5a0ff8e656 Refine expression typing, esp. by propagating range information.
R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 10:40:29 +00:00
dslomov@chromium.org
c0504eeffd Fix typedarray tests.
1. Fixed typo. lenght -> length. Arbitary -> Arbitrary.
2. TypedArray DataView property getters should throw TypeError when called on
    incompatible types.
3. Should not use integers as keys in the arbitrary-properties test.

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

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

Patch from Xueqiao Xu <xuq@google.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 09:48:50 +00:00
rmcilroy@chromium.org
03f4956744 v8_external_snapshot target visible only when using v8_use_external_startup_data
Prevent snapshot_blob.bin from being unnecessarily generated when building all targets.
When such file exists, chrome_tests assumes we will load V8's initial snapshot from
external files, even when such feature is turned off, which prevents the tests from
being successfully compiled.

BUG=421063
LOG=N
R=rmcilroy@chromium.org

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

Patch from André Baixo <baixo@google.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 09:36:12 +00:00
bmeurer@chromium.org
3dae2a0d3f Run benchmarks tests with --turbo-asm flag.
R=machenbach@chromium.org, mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 09:30:27 +00:00
bmeurer@chromium.org
4a5055174b [turbofan] Embed the actual backing store address for typed loads/stores.
TEST=unittests
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 09:17:33 +00:00
marja@chromium.org
363ac55a5d Script streaming: UTF-8 handling fix.
The problem was that there can be several multi-byte UTF-8 characters near the
splitting point of the data chunks, and the code didn't handle it properly.

This was also the source of crbug.com/417891 - I thought the crash can only
happen when V8 is passed invalid UTF-8 data, but it can also happen in the
abovementioned case. After the fix, we handle the valid UTF-8 case and also
guard against invalid UTF-8 data.

R=yangguo@chromium.org
BUG=chromium:417891
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 09:01:54 +00:00
bmeurer@chromium.org
f60bc89083 [turbofan] Make VisitBranch and friends to backend specific.
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
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 08:15:03 +00:00
dcarney@chromium.org
657052e87f [turbofan] remove graph from InstructionSequence
R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 08:09:27 +00:00
yangguo@chromium.org
f92dc9a1fd Fix build failure.
TBR=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 07:57:40 +00:00
yangguo@chromium.org
33dc53f9cc Always include full reloc info to stubs for serialization.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 07:50:21 +00:00
dcarney@chromium.org
907ad65dce [turbofan]IA: ChangeFloat32ToFloat64 supports mem operand
BUG=
R=titzer@chromium.org

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

Patch from Jing Bao <jing.bao@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 07:42:35 +00:00
dcarney@chromium.org
3396c2badd [turbofan] IA: TruncateFloat64ToFloat32 supports mem operand
BUG=
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 07:12:57 +00:00
weiliang.lin@intel.com
52e156a866 X87: Introduce FeedbackVectorSlot type - better than int.
port r24528.

original commit message:

  Introduce FeedbackVectorSlot type - better than int.

  It's good to have typing around this value.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 01:54:44 +00:00
weiliang.lin@intel.com
ed5f2f814c X87: Teach TurboFan to call vector-based ICs.
port r24519.

original commit message:

  Teach TurboFan to call vector-based ICs.

  Additional static information needs to be passed to Load and KeyedLoad calls if
  --vector-ics is turned on

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-11 06:00:44 +00:00
dusan.milosavljevic@imgtec.com
8e092181ae MIPS: Fix loading Float64 constants in turbofan.
TEST=ctest/test-run-machops/RunFloat64SubImm1,
     RunFloat64SubImm2, RunFloat64MulImm, RunFloat64Compare

BUG=
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 18:00:58 +00:00
adamk@chromium.org
9595c6104e Add test case for SparseJoin misbehavior with getters
BUG=v8:3621
LOG=N
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 17:17:00 +00:00
balazs.kilvady@imgtec.com
f7afce6aea MIPS: Introduce FeedbackVectorSlot type - better than int.
Port r24528 (f7b7e5a)

Original commit message:
It's good to have typing around this value.

BUG=
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 16:17:10 +00:00
yangguo@chromium.org
ba6e17c494 Split off remaining runtime functions in runtime.cc.
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 14:59:53 +00:00
balazs.kilvady@imgtec.com
396008387b MIPS: Teach TurboFan to call vector-based ICs.
Port r24519 (842debf)

Original commit message:
Additional static information needs to be passed to Load and KeyedLoad calls if
--vector-ics is turned on.

BUG=
R=dusan.milosavljevic@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 13:56:34 +00:00
mstarzinger@chromium.org
a56c3ce06c Use phase-local zone in the graph builder.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 13:40:08 +00:00
ishell@chromium.org
3647fe8016 Disable webkit/array-iterate-backwards test in --gc-stress mode for turbofan
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 13:36:54 +00:00
jkummerow@chromium.org
ed585c083c Fix type feedback for name-keyed stores
BUG=chromium:422212
LOG=n
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 13:27:52 +00:00
mvstanton@chromium.org
d04617b2db Introduce FeedbackVectorSlot type - better than int.
It's good to have typing around this value.

R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 13:22:10 +00:00