platform/upstream/v8.git
11 years agoReplace OS::NumberOfCores() with CPU::NumberOfProcessorsOnline().
bmeurer@chromium.org [Wed, 28 Aug 2013 12:32:56 +0000 (12:32 +0000)]
Replace OS::NumberOfCores() with CPU::NumberOfProcessorsOnline().

The name NumberOfCores is misleading, as it does not return the
actual number of cores. While NumberOfProcessorsOnline is also
not a great name, it's at least consistent with the operating
system terminology.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTi...
bmeurer@chromium.org [Wed, 28 Aug 2013 11:38:20 +0000 (11:38 +0000)]
Revert "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."

This reverts commit r16390 for breaking the Windows build. Will
reland fixed version, which also uses the platform/ folder instead
of time/ folder as per offline discussion.

TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer...
bmeurer@chromium.org [Wed, 28 Aug 2013 11:06:11 +0000 (11:06 +0000)]
Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class.

These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(),
which are broken in several ways. The ElapsedTimer class implements a
stopwatch using TimeTicks::HighResNow() for high resolution, monotonic
timing.

Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime()
methods to actually return the time relative to the unix epoch as stated
in the documentation (previously that was relative to some arbitrary
point in time, i.e. boot time).

BUG=v8:2853
R=machenbach@chromium.org, yurys@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=16388

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTi...
bmeurer@chromium.org [Wed, 28 Aug 2013 11:04:40 +0000 (11:04 +0000)]
Revert "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."

This reverts commit r16388 for breaking build due to merge typo,
will reland with typo fixed.

TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer...
bmeurer@chromium.org [Wed, 28 Aug 2013 10:59:07 +0000 (10:59 +0000)]
Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class.

These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(),
which are broken in several ways. The ElapsedTimer class implements a
stopwatch using TimeTicks::HighResNow() for high resolution, monotonic
timing.

Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime()
methods to actually return the time relative to the unix epoch as stated
in the documentation (previously that was relative to some arbitrary
point in time, i.e. boot time).

BUG=v8:2853
R=machenbach@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMark cpu profiler tests as flaky to avoid tree closing.
machenbach@chromium.org [Wed, 28 Aug 2013 10:50:42 +0000 (10:50 +0000)]
Mark cpu profiler tests as flaky to avoid tree closing.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16387 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix accidential inclusion of <intrin.h> into namespace v8::internal.
bmeurer@chromium.org [Wed, 28 Aug 2013 09:53:13 +0000 (09:53 +0000)]
Fix accidential inclusion of <intrin.h> into namespace v8::internal.

Also cleanup the fallback __cpuid() implementation, and add
a comment about preserving the GOT pointer in case of PIC.

R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDrop unused and undocumented dummy_ from SaveContext.
bmeurer@chromium.org [Wed, 28 Aug 2013 09:40:47 +0000 (09:40 +0000)]
Drop unused and undocumented dummy_ from SaveContext.

Also remove the obsolte __GNUC_VERSION__ #define.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrepare push to trunk. Now working on version 3.21.6.
verwaest@chromium.org [Wed, 28 Aug 2013 08:40:30 +0000 (08:40 +0000)]
Prepare push to trunk.  Now working on version 3.21.6.

R=jkummerow@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/23494008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoClear next map word when folding allocations into js arrays.
hpayer@chromium.org [Wed, 28 Aug 2013 08:39:43 +0000 (08:39 +0000)]
Clear next map word when folding allocations into js arrays.

BUG=
R=mstarzinger@chromium.org, mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix compilation with recent MinGW64 versions.
bmeurer@chromium.org [Wed, 28 Aug 2013 08:35:04 +0000 (08:35 +0000)]
Fix compilation with recent MinGW64 versions.

Don't check for WIN32 define. Use V8_OS_* macros whenever
possible, and if not use _WIN32.

BUG=v8:2300
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRemove deprecated methods from debugger API
yurys@chromium.org [Wed, 28 Aug 2013 07:11:37 +0000 (07:11 +0000)]
Remove deprecated methods from debugger API

Deleting SetDebugEventListener and SetMessageHandler from v8::Debug. this methods were deprecated in 3.20
https://code.google.com/p/v8/source/browse/branches/3.20/include/v8-debug.h but in fact they have been superseded by SetDebugEventListener2 and SetMessageHandler2 long ago.

BUG=None
R=bmeurer@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoCosmetic fix wrt to V8_INLINE usage in cpu.cc.
bmeurer@chromium.org [Wed, 28 Aug 2013 07:08:32 +0000 (07:08 +0000)]
Cosmetic fix wrt to V8_INLINE usage in cpu.cc.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Fix return-value from Array.push stub when pushing non-SMI value
plind44@gmail.com [Wed, 28 Aug 2013 05:23:51 +0000 (05:23 +0000)]
MIPS: Fix return-value from Array.push stub when pushing non-SMI value

Load and update the arrays length in v0 to make sure the length gets
returned correctly when leaving the function.

Add new testcase.

TEST=mjsunit/array-push-non-smi-value

BUG=130022
R=jkummerow@chromium.org, plind44@gmail.com

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

Patch from fs <fs@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoIntroduce PushInt64AsTwoSmis and PopInt64AsTwoSmis macro instructions for X64
haitao.feng@intel.com [Wed, 28 Aug 2013 01:07:31 +0000 (01:07 +0000)]
Introduce PushInt64AsTwoSmis and PopInt64AsTwoSmis macro instructions for X64

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Eliminate Smi check when changing from Smi to Integer32
palfia@homejinni.com [Tue, 27 Aug 2013 23:07:03 +0000 (23:07 +0000)]
MIPS: Eliminate Smi check when changing from Smi to Integer32

Port r16362 (6dd68a5c)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Eliminate intentional conversion from Smi to Int32 in HMul
palfia@homejinni.com [Tue, 27 Aug 2013 23:05:07 +0000 (23:05 +0000)]
MIPS: Eliminate intentional conversion from Smi to Int32 in HMul

Port r16361 (b41ab14c)

Original commit message:
If not all uses of arithmetic binary operation can be truncated to Smi, check if they can be truncated to Int32 which could avoid minus zero check

Fixed DoMulI on X64 to adopt correct operand size when the representation is Smi

Fixed DoMulI on ARM. Constant right operand optimization is based on Integer 32 instead of its representation.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: cleanup api callbacks now that handles are never returned directly
palfia@homejinni.com [Tue, 27 Aug 2013 23:02:35 +0000 (23:02 +0000)]
MIPS: cleanup api callbacks now that handles are never returned directly

Port r16360 (72401868)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Fix Cluster Fuzz stack frame corruption bug.
palfia@homejinni.com [Tue, 27 Aug 2013 22:55:30 +0000 (22:55 +0000)]
MIPS: Fix Cluster Fuzz stack frame corruption bug.

Port r16358 (a8a679b9)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Convert FastNewClosureStub into hydrogen.
palfia@homejinni.com [Tue, 27 Aug 2013 22:53:25 +0000 (22:53 +0000)]
MIPS: Convert FastNewClosureStub into hydrogen.

Port r16356 (0a0ea300)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: remove old style callbacks
palfia@homejinni.com [Tue, 27 Aug 2013 22:51:37 +0000 (22:51 +0000)]
MIPS: remove old style callbacks

Port r16354 (559bc02d)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRemove implementation of CpuProfileNode methods deprecated in v8 3.20
yurys@chromium.org [Tue, 27 Aug 2013 15:12:04 +0000 (15:12 +0000)]
Remove implementation of CpuProfileNode methods deprecated in v8 3.20

GetTotalTime, GetSelfTime and GetTotalSamplesCount were deprecated in 3.20 (https://code.google.com/p/v8/source/browse/branches/3.20/include/v8-profiler.h) and can be safely removed.

BUG=None
R=bmeurer@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix definition of V8_*_C() macros.
bmeurer@chromium.org [Tue, 27 Aug 2013 14:16:34 +0000 (14:16 +0000)]
Fix definition of V8_*_C() macros.

Make V8_INT64_C() and V8_UINT64_C() available in 32-bit mode as well,
so we can write readable constants (base 10) instead of having to
obfuscate them using V8_2PART_UINT64_C().

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoIntroduce SmiValuesAre31Bits and SmiValuesAre32Bits global predicate functions
haitao.feng@intel.com [Tue, 27 Aug 2013 14:13:40 +0000 (14:13 +0000)]
Introduce SmiValuesAre31Bits and SmiValuesAre32Bits global predicate functions

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFixed HMul::Canonicalize() to support SMI
jkummerow@chromium.org [Tue, 27 Aug 2013 14:09:26 +0000 (14:09 +0000)]
Fixed HMul::Canonicalize() to support SMI

Same idea for HDiv when the right oeprand is 1

BUG=
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDrop platform-nullos stuff, which was already horribly out-of-date for a long time.
bmeurer@chromium.org [Tue, 27 Aug 2013 14:04:49 +0000 (14:04 +0000)]
Drop platform-nullos stuff, which was already horribly out-of-date for a long time.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoEliminate Smi check when changing from Smi to Integer32
verwaest@chromium.org [Tue, 27 Aug 2013 14:02:08 +0000 (14:02 +0000)]
Eliminate Smi check when changing from Smi to Integer32

BUG=
R=verwaest@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22824003

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoEliminate intentional conversion from Smi to Int32 in HMul
verwaest@chromium.org [Tue, 27 Aug 2013 13:55:00 +0000 (13:55 +0000)]
Eliminate intentional conversion from Smi to Int32 in HMul

If not all uses of arithmetic binary operation can be truncated to Smi, check if they can be truncated to Int32 which could avoid minus zero check

Fixed DoMulI on X64 to adopt correct operand size when the representation is Smi

Fixed DoMulI on ARM. Constant right operand optimization is based on Integer 32 instead of its representation.

BUG=
R=verwaest@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22600005

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agocleanup api callbacks now that handles are never returned directly
dcarney@chromium.org [Tue, 27 Aug 2013 13:41:44 +0000 (13:41 +0000)]
cleanup api callbacks now that handles are never returned directly

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoEliminated manual allocation folding in BuildCloneShallowArray.
hpayer@chromium.org [Tue, 27 Aug 2013 13:39:52 +0000 (13:39 +0000)]
Eliminated manual allocation folding in BuildCloneShallowArray.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix Cluster Fuzz stack frame corruption bug.
hpayer@chromium.org [Tue, 27 Aug 2013 13:31:15 +0000 (13:31 +0000)]
Fix Cluster Fuzz stack frame corruption bug.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrefill allocated objects with one word fillers if we do not use allocation folding.
hpayer@chromium.org [Tue, 27 Aug 2013 12:03:56 +0000 (12:03 +0000)]
Prefill allocated objects with one word fillers if we do not use allocation folding.

BUG=
R=mstarzinger@chromium.org, titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoConvert FastNewClosureStub into hydrogen.
mvstanton@chromium.org [Tue, 27 Aug 2013 11:55:08 +0000 (11:55 +0000)]
Convert FastNewClosureStub into hydrogen.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFiller sizes have to be Smis, fix x64 breakage.
hpayer@chromium.org [Tue, 27 Aug 2013 11:51:03 +0000 (11:51 +0000)]
Filler sizes have to be Smis, fix x64 breakage.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoremove old style callbacks
dcarney@chromium.org [Tue, 27 Aug 2013 11:47:52 +0000 (11:47 +0000)]
remove old style callbacks

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoH-BuildIncrement should make use of available type feedback
jkummerow@chromium.org [Tue, 27 Aug 2013 11:44:45 +0000 (11:44 +0000)]
H-BuildIncrement should make use of available type feedback

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd correct test case to nacl skip list.
machenbach@chromium.org [Tue, 27 Aug 2013 10:04:19 +0000 (10:04 +0000)]
Add correct test case to nacl skip list.

TBR=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd V8_NOINLINE() and define INLINE()/NO_INLINE() in terms of their V8_*() counterparts.
bmeurer@chromium.org [Tue, 27 Aug 2013 09:21:16 +0000 (09:21 +0000)]
Add V8_NOINLINE() and define INLINE()/NO_INLINE() in terms of their V8_*() counterparts.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix --trace-hydrogen --enable-slow-asserts combination.
mstarzinger@chromium.org [Tue, 27 Aug 2013 08:49:27 +0000 (08:49 +0000)]
Fix --trace-hydrogen --enable-slow-asserts combination.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMinor cleanups, hopefully fixing an issue with VC's /Ze option on the way.
svenpanne@chromium.org [Tue, 27 Aug 2013 08:47:05 +0000 (08:47 +0000)]
Minor cleanups, hopefully fixing an issue with VC's /Ze option on the way.

BUG=2859
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoSkip failing test for NaCl.
machenbach@chromium.org [Tue, 27 Aug 2013 08:29:31 +0000 (08:29 +0000)]
Skip failing test for NaCl.

The test was added in 16322 and fails on NaCl ever since.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix test for warn_unused_result and move it to v8config.h.
bmeurer@chromium.org [Tue, 27 Aug 2013 08:27:42 +0000 (08:27 +0000)]
Fix test for warn_unused_result and move it to v8config.h.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdded allocation folding support for old space allocations.
hpayer@chromium.org [Tue, 27 Aug 2013 07:42:23 +0000 (07:42 +0000)]
Added allocation folding support for old space allocations.

BUG=
R=mstarzinger@chromium.org, titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoIntroduce StackArgumentsAccessor class for X64
haitao.feng@intel.com [Tue, 27 Aug 2013 01:21:39 +0000 (01:21 +0000)]
Introduce StackArgumentsAccessor class for X64

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "This patch implements optimized objectInfo structure which manages the set...
adamk@chromium.org [Mon, 26 Aug 2013 22:45:10 +0000 (22:45 +0000)]
Revert "This patch implements optimized objectInfo structure which manages the set of observers associated with an object and the changeRecord types which they accept."

This reverts r16343 due to mjsunit object-observe failures on several bots:
  - V8 Linux nosse2
  - V8 GC stress 2

TBR=rossberg

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoThis patch implements optimized objectInfo structure which manages the set of observe...
adamk@chromium.org [Mon, 26 Aug 2013 21:37:21 +0000 (21:37 +0000)]
This patch implements optimized objectInfo structure which manages the set of observers associated with an object and the changeRecord types which they accept.

Observation in the normal case (Object.observe, default accept types, one observer) now allocates fewer objects and unobservation no longer needs to scan and splice an InternalArray -- making the combined speed of observe/unobserve about 200% faster.

This patch implements the following optimizations:

-objectInfo is initially created without any connected objects or arrays. The first observer is referenced directly by objectInfo, and when a second observer is added, changeObservers converts to a mapping of callbackPriority->observer, which allows for constant time registration/de-registration.

-observer.accept and objectInfo.performing are conceptually the same data-structure. This is now directly represented as an abstract "TypeMap" which can later be optimized to be a smi in common cases, (e.g:   https://codereview.chromium.org/19269007/).

-objectInfo observers are only represented by an object with an accept typeMap if the set of accept types is non-default

R=rossberg@chromium.org

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

Patch from Rafael Weinstein <rafaelw@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Add a trap_on_abort flag.
palfia@homejinni.com [Mon, 26 Aug 2013 20:29:54 +0000 (20:29 +0000)]
MIPS: Add a trap_on_abort flag.

Port r16319 (22e0380)

Original commit message:
By setting this flag assertions behind --debug-code will trigger a
breakpoint instead of a call into Abort. This eases debugging, as the
call site is less cluttered and the backtrace starts where it should.

BUG=

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd RemovePrototype to FunctionTemplate
mstarzinger@chromium.org [Mon, 26 Aug 2013 17:40:03 +0000 (17:40 +0000)]
Add RemovePrototype to FunctionTemplate

This allows functions created from a FunctionTemplate to not have a
prototype property, which is required by DOM methods.

R=mstarzinger@chromium.org
BUG=chromium:272440

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFactor out HSimulate::ReplayEnvironment.
mstarzinger@chromium.org [Mon, 26 Aug 2013 17:30:41 +0000 (17:30 +0000)]
Factor out HSimulate::ReplayEnvironment.

R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrepare push to trunk. Now working on version 3.21.5.
jkummerow@chromium.org [Mon, 26 Aug 2013 17:11:27 +0000 (17:11 +0000)]
Prepare push to trunk.  Now working on version 3.21.5.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "Snapshot i18n Javascript code" and "Fix mjsunit/debug-script after r16298".
jkummerow@chromium.org [Mon, 26 Aug 2013 17:00:58 +0000 (17:00 +0000)]
Revert "Snapshot i18n Javascript code" and "Fix mjsunit/debug-script after r16298".

This reverts r16298 and r16303 due to ChromeOS browser_tests failures ("Uncaught ReferenceError: Boolean is not defined" in --gtest_filter="FileDisplay/FileManagerBrowserTest.Test/0" and others)

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoSmaller instruction to test negative number on ia32
jkummerow@chromium.org [Mon, 26 Aug 2013 16:48:23 +0000 (16:48 +0000)]
Smaller instruction to test negative number on ia32

BUG=
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix replaying of captured objects during chunk building.
mstarzinger@chromium.org [Mon, 26 Aug 2013 16:43:19 +0000 (16:43 +0000)]
Fix replaying of captured objects during chunk building.

R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoGet rid of ConvertFieldToDescriptor.
verwaest@chromium.org [Mon, 26 Aug 2013 15:30:30 +0000 (15:30 +0000)]
Get rid of ConvertFieldToDescriptor.
This CL additionally fixes up the attributes for FIELD and CONSTANT in SetLocalPropertyIgnoreAttributes.

R=rossberg@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23252008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMark test-log/EquivalenceOfLoggingAndTraversal as flaky
yurys@chromium.org [Mon, 26 Aug 2013 15:26:40 +0000 (15:26 +0000)]
Mark test-log/EquivalenceOfLoggingAndTraversal as flaky

It was marked as flaky before r16296 where it was skipped because of crashed. The crash is fixed but the test stil flakes.

BUG=v8:2857
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix test-log/EquivalenceOfLoggingAndTraversal
yurys@chromium.org [Mon, 26 Aug 2013 14:56:23 +0000 (14:56 +0000)]
Fix test-log/EquivalenceOfLoggingAndTraversal

The test has been marked as intermittently failing since 2011 and since that "code-creation" event signature has changed a bit. I updated the parser in the test but that revealed another issue: "code-creation" events with type 'Script' didn't match functions with type 'LazyCompile' retrieved during the heap traversal because the later had name " :1:1" which didn't match the script's name.

BUG=v8:2857
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMake sure semaphore used in Profiler is deleted
yurys@chromium.org [Mon, 26 Aug 2013 14:52:26 +0000 (14:52 +0000)]
Make sure semaphore used in Profiler is deleted

BUG=None
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPort CompileMathFloorCall from ia32 to x64
yangguo@chromium.org [Mon, 26 Aug 2013 14:51:51 +0000 (14:51 +0000)]
Port CompileMathFloorCall from ia32 to x64

BUG=
R=yangguo@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRemove flag aliases for parallel recompilation.
yangguo@chromium.org [Mon, 26 Aug 2013 14:50:12 +0000 (14:50 +0000)]
Remove flag aliases for parallel recompilation.

R=machenbach@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix NaCl build after r16322.
bmeurer@chromium.org [Mon, 26 Aug 2013 13:37:01 +0000 (13:37 +0000)]
Fix NaCl build after r16322.

R=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoLower kInitialMaxFastElementArray constant to 95K
jkummerow@chromium.org [Mon, 26 Aug 2013 13:04:05 +0000 (13:04 +0000)]
Lower kInitialMaxFastElementArray constant to 95K

to work around erroneous "illegal access" error on x64.

BUG=v8:2790
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoStore mode for keyed stores should be passed in from type feedback
mvstanton@chromium.org [Mon, 26 Aug 2013 12:28:08 +0000 (12:28 +0000)]
Store mode for keyed stores should be passed in from type feedback
regardless of the map used in polymorphic stores.

BUG=
R=jkummerow@chromium.org, verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoArm support for DoubleToIStub (truncating).
bmeurer@chromium.org [Mon, 26 Aug 2013 12:24:03 +0000 (12:24 +0000)]
Arm support for DoubleToIStub (truncating).

Added support for truncating DoubleToIStub and reorganize the macro-assembler
dToI operations to do the fast-path inline and the slow path by calling the
stub.

BUG=
R=bmeurer@chromium.org

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

Patch from Ross McIlroy <rmcilroy@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agojs accessor creation on Template
dcarney@chromium.org [Mon, 26 Aug 2013 11:59:14 +0000 (11:59 +0000)]
js accessor creation on Template

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUse signals for cpu profiling on Mac OS X
yurys@chromium.org [Mon, 26 Aug 2013 11:53:29 +0000 (11:53 +0000)]
Use signals for cpu profiling on Mac OS X

A while ago in r2315 Mac OS X cpu profiler implementation was changed to pause sampled thread instead of sending SIGPROF signal. That was done because at that point profiler send the signal to the whole process and it was handled on a random thread. Now that signal-based implementation uses pthread_kill it may well be used on Mac OS X too.

BUG=v8:2814
R=bmeurer@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd a trap_on_abort flag
olivf@chromium.org [Mon, 26 Aug 2013 11:22:39 +0000 (11:22 +0000)]
Add a trap_on_abort flag

By setting this flag assertions behind --debug-code will trigger a
breakpoint instead of a call into Abort. This eases debugging, as the
call site is less cluttered and the backtrace starts where it should.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd V8_ALIGNAS() and V8_ALIGNOF() and use that in lazy-instance.h.
bmeurer@chromium.org [Mon, 26 Aug 2013 11:18:28 +0000 (11:18 +0000)]
Add V8_ALIGNAS() and V8_ALIGNOF() and use that in lazy-instance.h.

This renames the existing V8_ALIGNAS() to V8_ALIGNED(), and introduces
V8_ALIGNAS(type, alignment) which aligns according to the type and falls
back to aligning according to alignment.

Also use __attribute__((aligned(n))) instead of __attribute__((__aligned__(n))).

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agofix 16316 debug check
dcarney@chromium.org [Mon, 26 Aug 2013 10:11:43 +0000 (10:11 +0000)]
fix 16316 debug check

TBR=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoabstract eternal into class
dcarney@chromium.org [Mon, 26 Aug 2013 09:41:22 +0000 (09:41 +0000)]
abstract eternal into class

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix the CPU feature detection.
bmeurer@chromium.org [Mon, 26 Aug 2013 09:37:39 +0000 (09:37 +0000)]
Fix the CPU feature detection.

Move all of the CPU detection logic to the CPU class, and make
all other code use the CPU class for feature detection.

This also fixes the ARM CPU feature detection logic, which was
based on fragile string search in /proc/cpuinfo. Now we use
ELF hwcaps if available, falling back to sane(!!) parsing of
/proc/cpuinfo for CPU features.

The ia32 and x64 code was also cleaned up to make it usable
outside the assembler.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFurther cleanup of test for V8_INFINITY.
bmeurer@chromium.org [Mon, 26 Aug 2013 08:17:38 +0000 (08:17 +0000)]
Further cleanup of test for V8_INFINITY.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "Add V8_ALIGNOF() and use that in lazy-instance.h."
bmeurer@chromium.org [Mon, 26 Aug 2013 08:12:08 +0000 (08:12 +0000)]
Revert "Add V8_ALIGNOF() and use that in lazy-instance.h."

This reverts commit r16311 for breaking build with certain compilers.
Will reland once sorted out.

TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDeprecate CpuProfileNode::GetSelfSamplesCount
yurys@chromium.org [Mon, 26 Aug 2013 08:10:10 +0000 (08:10 +0000)]
Deprecate CpuProfileNode::GetSelfSamplesCount

This method is being replaced by GetHitCount.

BUG=267595
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd V8_ALIGNOF() and use that in lazy-instance.h.
bmeurer@chromium.org [Mon, 26 Aug 2013 08:06:15 +0000 (08:06 +0000)]
Add V8_ALIGNOF() and use that in lazy-instance.h.

Also fix the inconsistent attribute naming, and make V8_GNUC_PREREQ() test work for GCC compatible compilers.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoSupport higher CPU profiler sampling rate on posix systems
yurys@chromium.org [Mon, 26 Aug 2013 07:17:12 +0000 (07:17 +0000)]
Support higher CPU profiler sampling rate on posix systems

New flag is added that allows to specify CPU profiler sampling rate in microseconds as command line argument. It was tested to work fine with 100us interval(currently it is 1ms). Default values are kept the same as in the current implementation. The new implementation is enabled only on POSIX platforms which use signals to collect samples. Other platforms that pause thread being sampled are to follow.

SIGPROF signals are now sent on the profiler event processor thread to make sure that the processing thread does fall far behind the sampling.

The patch is based on the previous one that was rolled out in r13851. The main difference is that the circular queue is not modified for now.

On Linux sampling for CPU profiler is initiated on the profiler event processor thread, other platforms to follow.

CPU profiler continues to use SamplingCircularQueue, we will probably replace it with a single sample buffer when Mac and Win ports support profiling on the event processing thread.

When --prof option is specified profiling is initiated either on the profiler event processor thread if CPU profiler is on or on the SignalSender thread as it used to be if no CPU profiles are being collected.

ProfilerEventsProcessor::ProcessEventsAndDoSample now waits in a tight loop, processing collected samples until sampling interval expires. To save CPU resources I'm planning to change that to use nanosleep as only one sample is expected in the queue at any point.

BUG=v8:2814
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoWorkaround 'inlining failed' build error with older GCC 4.x releases.
bmeurer@chromium.org [Sat, 24 Aug 2013 16:58:32 +0000 (16:58 +0000)]
Workaround 'inlining failed' build error with older GCC 4.x releases.

R=bmeurer@chromium.org

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

Patch from Ben Noordhuis <info@bnoordhuis.nl>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoReplace mapcheck dependency on HStoreNamedField with object.
verwaest@chromium.org [Fri, 23 Aug 2013 17:55:22 +0000 (17:55 +0000)]
Replace mapcheck dependency on HStoreNamedField with object.

R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23402005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd source map support to tick processor.
jkummerow@chromium.org [Fri, 23 Aug 2013 17:20:54 +0000 (17:20 +0000)]
Add source map support to tick processor.

Added a console parameter for source map to the tick processor.
The tickprocesspor reads in the source maps and uses it to output the original filename, line number and column in the profile.
Modified d8 to output column numbers into the log, since this is needed to do source mapping.

R=jkummerow@chromium.org

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

Patch from Daniel Kurka <dankurka@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix dependency of loading the heap-number for a double-field store to be the mapcheck.
verwaest@chromium.org [Fri, 23 Aug 2013 16:31:31 +0000 (16:31 +0000)]
Fix dependency of loading the heap-number for a double-field store to be the mapcheck.

R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22926027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix mjsunit/debug-script after r16298
jochen@chromium.org [Fri, 23 Aug 2013 13:45:24 +0000 (13:45 +0000)]
Fix mjsunit/debug-script after r16298

TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd --trace-hydrogen-filter flag.
jkummerow@chromium.org [Fri, 23 Aug 2013 13:30:02 +0000 (13:30 +0000)]
Add --trace-hydrogen-filter flag.

The flag restricts hydrogen.cfg output to functions passing the filter,
similar to what --hydrogen-filter does for optimization in general.

This is useful for investigating large repro cases where tracing all
functions would lead to an impractically large hydrogen.cfg file, but
restricting optimization using --hydrogen-filter is undesirable
(e.g. because it might cause the issue to no longer reproduce).

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrepare push to trunk. Now working on version 3.21.4.
rossberg@chromium.org [Fri, 23 Aug 2013 13:27:24 +0000 (13:27 +0000)]
Prepare push to trunk.  Now working on version 3.21.4.

R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoSnapshot i18n Javascript code
jochen@chromium.org [Fri, 23 Aug 2013 13:24:48 +0000 (13:24 +0000)]
Snapshot i18n Javascript code

BUG=v8:2745
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "Get rid of ConvertFieldToDescriptor and simplify related code."
verwaest@chromium.org [Fri, 23 Aug 2013 13:21:01 +0000 (13:21 +0000)]
Revert "Get rid of ConvertFieldToDescriptor and simplify related code."

R=rossberg@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22999048

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoSkip test-log/EquivalenceOfLoggingAndTraversal
jochen@chromium.org [Fri, 23 Aug 2013 13:16:10 +0000 (13:16 +0000)]
Skip test-log/EquivalenceOfLoggingAndTraversal

Note that the test crashes if it fails, so the PASS || FAIL annotation
doesn't work.

BUG=v8:2857
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoGet rid of ConvertFieldToDescriptor and simplify related code.
verwaest@chromium.org [Fri, 23 Aug 2013 11:52:59 +0000 (11:52 +0000)]
Get rid of ConvertFieldToDescriptor and simplify related code.

R=rossberg@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22861025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd comment about avoiding VS runtime support to OS::DebugBreak.
bmeurer@chromium.org [Fri, 23 Aug 2013 11:51:34 +0000 (11:51 +0000)]
Add comment about avoiding VS runtime support to OS::DebugBreak.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoGet rid of duplicated CPU::DebugBreak() method.
bmeurer@chromium.org [Fri, 23 Aug 2013 11:43:30 +0000 (11:43 +0000)]
Get rid of duplicated CPU::DebugBreak() method.

We already have OS::DebugBreak(), which does the right thing.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoTemporarily disable optimization for StringWrappers to use native valueOf
jochen@chromium.org [Fri, 23 Aug 2013 11:31:18 +0000 (11:31 +0000)]
Temporarily disable optimization for StringWrappers to use native valueOf

V8 stores this information directly in the map of the wrapper, however,
it is not invalidated when the prototype of the wrapper is changed, so
once the bit is set, it is no longer possible to override valueOf.

This bug is currently hidden in Chrome since the i18n extension always
modifies the String.prototype, and so the optimization never kicks in.
Disabling the optimization temporarily allows for snapshotting i18n now.

BUG=v8:2855
R=yangguo@chromium.org
TEST=mjsunit/regress/regress-2855.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRemove hacks for GC stress builders from cctests.
mstarzinger@chromium.org [Fri, 23 Aug 2013 11:10:03 +0000 (11:10 +0000)]
Remove hacks for GC stress builders from cctests.

R=machenbach@chromium.org
BUG=cctest

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDelete dead FloatingPointHelper functions
jkummerow@chromium.org [Fri, 23 Aug 2013 11:06:49 +0000 (11:06 +0000)]
Delete dead FloatingPointHelper functions

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix crash due RegExpAtom method called on RegExpCharacterClass object.
bmeurer@chromium.org [Fri, 23 Aug 2013 11:06:16 +0000 (11:06 +0000)]
Fix crash due RegExpAtom method called on RegExpCharacterClass object.

In the RegExpUnparser::VisitText(RegExpText* that, void* data) function always RegExpUnparser::VisitAtom function called via that->elements()->at(i).data.u_atom->Accept(this, data); even if the type of the object is RegExpCharacterClass.

The problem shows using g++ 4.7(.2, .3) since r16232, since GCC optimizes virtual method calls to direct calls based on __final/final hints. Tested on MIPS and x64:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000588928 in v8::internal::RegExpUnparser::VisitAtom(v8::internal::RegExpAtom*, void*) ()

This cleans up the TextElement class to avoid the unsafe+unchecked union access, that caused the crash.

TEST=cctest/test-regexp/ParserRegression
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoCleanup and speedup MarkCompactCollector test case.
mstarzinger@chromium.org [Fri, 23 Aug 2013 11:04:25 +0000 (11:04 +0000)]
Cleanup and speedup MarkCompactCollector test case.

R=bmeurer@chromium.org
TEST=cctest/test-mark-compact/MarkCompactCollector

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix crashes of some CPU profiler tests on Windows after r16284
yurys@chromium.org [Fri, 23 Aug 2013 10:59:29 +0000 (10:59 +0000)]
Fix crashes of some CPU profiler tests on Windows after r16284

All the tests that started crashing create ProfilerEventsProcessor on the stack. After r16284 SamplingCircularQueue buffer is allocated as a field of the queue instead of separate heap object. This increased self size of ProfilerEventsProcessor by about 1Mb. Windows malloc fails to allocate such an object on the stack and crashes.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix scoping of function declarations in eval inside non-trivial local scope
rossberg@chromium.org [Fri, 23 Aug 2013 09:25:37 +0000 (09:25 +0000)]
Fix scoping of function declarations in eval inside non-trivial local scope

R=mstarzinger@chromium.org
BUG=v8:2594

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix compilation on Windows after r16284
yurys@chromium.org [Fri, 23 Aug 2013 08:43:57 +0000 (08:43 +0000)]
Fix compilation on Windows after r16284

BUG=None
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRewrite SamplingCircularQueue
yurys@chromium.org [Fri, 23 Aug 2013 08:22:07 +0000 (08:22 +0000)]
Rewrite SamplingCircularQueue

The new implementation:
* uses MemoryBarriers to make sure up-to-date data is accessed on both producer and consumer threads
* will not allow to overwrite records
* doesn't have notion of chunks, instead each entry is aligned on the cache line boundaries

BUG=v8:2814
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agogrokdump: fix Oddball printing
jkummerow@chromium.org [Fri, 23 Aug 2013 08:17:54 +0000 (08:17 +0000)]
grokdump: fix Oddball printing

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoClean up the redundant Int32Constant check which is covered by double case
jkummerow@chromium.org [Fri, 23 Aug 2013 08:11:12 +0000 (08:11 +0000)]
Clean up the redundant Int32Constant check which is covered by double case

BUG=
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMove OS/compiler/feature detection to public v8config.h header.
bmeurer@chromium.org [Fri, 23 Aug 2013 07:32:25 +0000 (07:32 +0000)]
Move OS/compiler/feature detection to public v8config.h header.

From now on the v8config.h header should be the one and
only file where we do (freaky) checks to detect OS, C++
compiler or certain compiler features. Since we need that
both internally and for the public API, the new v8config.h
is the proper place to add (everything is prefixed with V8_
so we are safe).

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00