Commit Graph

19692 Commits

Author SHA1 Message Date
mstarzinger@chromium.org
e4fe4e2c5f Switch ScheduleLateNodeVisitor to use explicit queue.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:31:12 +00:00
bmeurer@chromium.org
6619a7975d [turbofan] Add support for deferred code.
Branch can now have an optional hint, when the condition is
likely true or false, and if such a hint is present the other
basic block will be marked as deferred and placed at the end
of the function.

We currently use this feature for tagging int32/uint32 in
change lowering, and for load/store bounds checks in simplified
lowering.

TEST=cctest,unittests
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:24:55 +00:00
dslomov@chromium.org
1efcf09375 Perf tests for fromCodePoint and codePointAt.
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:08:42 +00:00
sigurds@chromium.org
81420f003b Add FRINTP (round towards positive infinity) instruction.
Macro Assember, assembler and simulator for ARM64 were missing FRINTP.

R=rodolph.perfetta@arm.com, ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:06:22 +00:00
balazs.kilvady@imgtec.com
1479cb96c3 MIPS64: Spread the knowledge!
Port r24793 (c0c2b0d)

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 10:26:38 +00:00
bmeurer@chromium.org
08e20d1291 Disable libstdc++ debug mode on x64 for now.
TBR=mstarzinger@chromium.org

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 09:37:42 +00:00
mstarzinger@chromium.org
cb4f2520aa Remove testing artifacts from Schedule::AddFoo.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 09:14:48 +00:00
dslomov@chromium.org
b664c12235 Flatten the string in StringToDouble function.
R=yangguo@chromium.org
BUG=chromium:425551
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 08:19:05 +00:00
jochen@chromium.org
4669a5cfb9 Really disable test when running with optimize for size
R=bmeurer@chromium.org
TBR=bmeurer@chromium.org
LOG=n
BUG=none

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 08:15:47 +00:00
bmeurer@chromium.org
ded822a5de Enable libstdc++ debug mode in debug builds.
For now it's only enabled on Linux/Intel.

R=mstarzinger@chromium.org
BUG=v8:3638
LOG=y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 08:12:17 +00:00
dslomov@chromium.org
af97f09b94 Spread the knowledge!
R=arv@chromium.org, mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 08:06:43 +00:00
jochen@chromium.org
b57976051b Fix newly added test to not run with optimize-for-size
TBR=ulan@chromium.org
BUG=none
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 07:36:12 +00:00
jochen@chromium.org
8f7a455fe2 Add support for a target new space size
When this flag is set, we will commit additional pages up until the
target size before doing a scavenge.

I made sure that all tests pass when a target size of 16MB is set.

BUG=v8:3626
R=ulan@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 06:58:38 +00:00
bmeurer@chromium.org
8214cc0e56 Use getauxval() if available.
This fixes the problem of not being able to detect ARM features on
ChromeOS because sandbox cannot access /proc/self/auxv and
/proc/cpuinfo there.

Drive-by-cleanup to libc detection in two other places.

R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 06:42:17 +00:00
machenbach@chromium.org
f0881c6129 Whitespace change to trigger revert of new test262-es6 tests.
TBR=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 20:13:09 +00:00
machenbach@chromium.org
681c1b923a Whitespace change to trigger new test262-es6 tests.
TBR=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 18:46:12 +00:00
machenbach@chromium.org
bdba5b4e72 Whitespace change to trigger new test262-es6 tests.
TBR=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 18:38:03 +00:00
adamk@chromium.org
ed23b4de0b Replace single quotes with double quotes to fix BUILD.gn
TBR=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 18:16:50 +00:00
adamk@chromium.org
b6d0113abc Array.prototype.{slice,splice} should use [[DefineOwnProperty]] to generate return value
BUG=chromium:423633
LOG=N
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 17:46:42 +00:00
dslomov@chromium.org
37bd114925 Update ObjectToString to Harmony-draft algorithm
Updates Object.prototype.toString() to use algorithm described in harmony drafts.

Currently, the behaviour is essentially the same as ES262's version, however this changes when internal structures
such as Promise make use of symbolToStringTag (as they are supposed to, see v8:3241), and changes further once
Symbol.toStringTag is exposed publicly.

BUG=v8:3241, v8:3502
LOG=N
R=dslomov@chromium.org

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

Patch from Caitlin Potter <caitpotter88@gmail.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 17:21:32 +00:00
mstarzinger@chromium.org
5df6dc390b Revert "Make sure floating phi nodes are coupled to their control."
TBR=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 16:31:51 +00:00
mstarzinger@chromium.org
bf958b0f78 Make sure floating phi nodes are coupled to their control.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 15:35:39 +00:00
titzer@chromium.org
0c4f8bc6c4 Fix scheduler not to connect final merge block in the graph to its inputs.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 15:12:45 +00:00
dcarney@chromium.org
1c5fafe890 [turbofan] use ZonePool in most places in the compiler pipeline a temp zone is used.
R=jarin@chromium.org, bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24779 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 14:44:50 +00:00
titzer@chromium.org
2642058760 Fix off-by-one bug in TurboFan register allocator.
R=jarin@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 14:41:54 +00:00
titzer@chromium.org
12a82ef32c Fix AstGraphBuilder for loops like for(;;).
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 14:17:08 +00:00
rossberg@chromium.org
077809fc67 Fix incorrect private access
(I'm puzzled why GCC did not report this error.)

TBR=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 13:37:49 +00:00
mvstanton@chromium.org
8330178b4c The issue is that by handling strings with map/handler pairs instead of a special
version of the keyed load stub (https://code.google.com/p/v8/source/detail?r=24661),
I allowed polymorphism between string and non-string types in the IC. Before, the
IC would go generic.

Then, at crankshaft time, we special case when we only saw strings. The error
here is that crankshaft can't emit code that handles polymorphism between string
and non-string types. The choice is either to get that to happen (I don't deem
this necessary from a performance point of view, an IC with such type feedback
before would have gone generic), or simply check for the case of "polymorphic
with some string maps" and require crankshaft to go generic. I'll do the latter.

BUG=425519
LOG=N
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 13:04:51 +00:00
rossberg@chromium.org
5e1cd18d94 Fix data race with interface caching
R=bmeurer@chromium.org
BUG=421634
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 12:57:19 +00:00
jochen@chromium.org
2147d5a145 Use an idle notification of 0ms as hint that a GC after context disposal is triggerd
BUG=none
R=ulan@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 12:56:52 +00:00
dcarney@chromium.org
54fef44df3 [turbofan] add ZonePool to correctly track compiler phase memory usage
R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 12:38:46 +00:00
bmeurer@chromium.org
1efc572fe7 [turbofan] Reduce ~~x to x.
TEST=unittests
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 12:24:01 +00:00
wingo@igalia.com
4eddbacabf Assign bailout and type feedback IDs in a post-pass
This will allow us to move expressions from one function to another, for
example when the parser determines that a given cover grammar instance
is actually the default value initializer for an arrow function.

This is a re-land of https://codereview.chromium.org/636403003/ with a
fix for the arm64 code generator.

R=svenpanne@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 12:16:37 +00:00
dslomov@chromium.org
b830c2741c Handle property name "-0" correctly for typed arrays.
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 11:54:10 +00:00
verwaest@chromium.org
37b7dde54d Remove unused IsDirty
BUG=
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 11:21:54 +00:00
dusan.milosavljevic@imgtec.com
0ffa82c3ac Handle NaN value storing in Uint8Clamped typed arrays.
TEST=mjsunit/external-array
BUG=
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 11:10:13 +00:00
dslomov@chromium.org
ac8b70cf2b Perf tests for harmony string functions.
R=yangguo@chromium.org

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 11:05:32 +00:00
bmeurer@chromium.org
423201ea06 [x86] Select better left operand for comparisons.
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:59:55 +00:00
yangguo@chromium.org
018e3979ee Fix leak in d8.
R=bmeurer@chromium.org
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:59:41 +00:00
svenpanne@chromium.org
d66d302b00 Revert "Assign bailout and type feedback IDs in a post-pass"
This reverts r24757, which breaks the ARM64 simulator build.
Simple repro:

   out/arm64.debug/d8 -e 'eval("(function(){ const x; var x; })")'

TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:55:12 +00:00
verwaest@chromium.org
ce9f799d39 Remove unused GetConstructor
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:51:02 +00:00
yurys@chromium.org
0ff4752837 Fix use-of-uninitialized-value introduced in r24700
LOG=N
BUG=chromium:425146
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:40:14 +00:00
ulan@chromium.org
67aa5fbfcb Fix Win64 after r24758.
BUG=
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:33:57 +00:00
ulan@chromium.org
e777fc4126 Use smi zero instead of undefine_value to zap dead weak cells.
It is faster to test for smi zero from generated code.

BUG=
R=erikcorry@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 09:42:16 +00:00
svenpanne@chromium.org
2b8d734037 Assign bailout and type feedback IDs in a post-pass
This will allow us to move expressions from one function to another, for
example when the parser determines that a given cover grammar instance
is actually the default value initializer for an arrow function.

R=svenpanne@chromium.org, marja@chromium.org
BUG=

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

Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 08:52:32 +00:00
weiliang.lin@intel.com
1306839894 X87: vector-based ICs did not update type feedback counts correctly.
port r24732.

original commit message:

  vector-based ICs did not update type feedback counts correctly.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 08:28:00 +00:00
svenpanne@chromium.org
3de17c6950 Remove v8stdint.h, it doesn't serve a purpose anymore.
Basically a follow-up to https://codereview.chromium.org/667573005/.

LOG=y
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 08:25:14 +00:00
dcarney@chromium.org
38ce3a03cb fix ia32 after r24753
TBR=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 07:12:18 +00:00
dcarney@chromium.org
6c1e4f08d1 [turbofan] cleanup InstructionSequence
R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 06:59:50 +00:00
yangguo@chromium.org
e17e2afb78 d8: create compile cache in a separate isolate.
R=vogelheim@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 06:40:15 +00:00