Commit Graph

12854 Commits

Author SHA1 Message Date
verwaest@chromium.org
8b97a1c5d2 Handlify JSProxy::Fix
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 12:52:25 +00:00
bmeurer@chromium.org
8292b68acf Fix typo breaking Mac build after commit r16450.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 12:30:09 +00:00
bmeurer@chromium.org
d4ff9ce39f Improve feature detection.
Add V8_GLIBC_PREREQ() macro to test the version of the GNU C library.
Make V8_GNUC_PREREQ() work for compilers that masquerade as GCC (you
can always use V8_CC_* to test for a specific one if you need to).
Add V8_LIBC_* to detect the C library in use.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 12:09:50 +00:00
olivf@chromium.org
7669decc41 Reland "Fix missing x87 tracking for deferred code."
Fixed mac build.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 11:58:50 +00:00
mstarzinger@chromium.org
25d86eacbd Handlify JSReceiver::SetElement method.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 11:44:39 +00:00
jkummerow@chromium.org
4cf77d7748 Prepare push to trunk. Now working on version 3.21.8.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 11:31:06 +00:00
yangguo@chromium.org
ecbfcd7e06 Turn interrupt and stack check into builtins.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 11:24:58 +00:00
jkummerow@chromium.org
9efb5cd23b Make VisitStatements() consistent among all AstVisitor implementations
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 10:51:37 +00:00
dcarney@chromium.org
740bfa5dd0 fix eternal casts
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 09:03:27 +00:00
bmeurer@chromium.org
609ed28111 Revert "ConstantPoolSizeAt() should return number of Instructions instead, otherwise, some of the code will be treated as constant pool when printing code in ARM disassembler."
This reverts commit r16419 for breaking the ARM simulator tests.

TEST=mjsunit/regress/regress-2624
R=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 08:16:04 +00:00
yangguo@chromium.org
0f6f621522 Assert external strings in external string table. Remove TODOs.
R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 07:48:04 +00:00
mstarzinger@chromium.org
72826fc892 Simplify object printer declarations.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 07:41:24 +00:00
mstarzinger@chromium.org
5e5ea8d494 Handlify JSObject::DeleteElement method.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 18:01:45 +00:00
mstarzinger@chromium.org
b0ac323ec7 Make implicit HandleScope of AssertNoContextChange explicit.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 17:13:57 +00:00
olivf@chromium.org
0c64d5e988 Revert "Fix missing x87 tracking for deferred code."
Mac builder has some problems compiling.

BUG=
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 16:30:47 +00:00
olivf@chromium.org
ee37db140a Fix missing x87 tracking for deferred code.
When compiling deferred code we have to remember the corresponding stack state and ensure that the deferred code does not manipulate the order of elements.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 15:59:40 +00:00
dcarney@chromium.org
799df7c4ed turn on global handle zapping
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 15:03:37 +00:00
jkummerow@chromium.org
2c9ac9c7e1 Always visit branches during HGraph building
even if constant values indicate that they are unreachable.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 14:55:45 +00:00
yurys@chromium.org
7fc915b701 Do not start sampler thread when CpuProfiler is active
Now that CpuProfiler sends does sampling on the profile event processing thread there is no need to launch sampler thread. The latter is used only for --prof profiler.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 14:03:38 +00:00
mstarzinger@chromium.org
dc14d6f435 Implement materialization support for JSArray types.
R=hpayer@chromium.org
TEST=mjsunit/regress/regress-crbug-150729 (+FastLiteral)

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 13:56:08 +00:00
yurys@chromium.org
75e5a5a1a6 Support higher CPU profiler sampling rate on Windows
This change moves sampling from SamplerThread to the profiler events processing thread and allows to configure sampling interval on Windows.

Custom tick counter is used instead of OS::Ticks as the latter has maximum presicion of 1ms while we need 100us. QueryPerformanceCounter is used to retrieve high-precision time as described in http://msdn.microsoft.com/en-us/library/ee417693(VS.85).aspx

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 13:44:25 +00:00
yangguo@chromium.org
b3cbe51f1c Refactor interrupt check patching for OSR.
This is to prepare for speculative concurrent OSR. I'm planning to add
another builtin to patch to, to indicate a concurrent OSR.

R=titzer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 13:06:04 +00:00
hpayer@chromium.org
95c7ae8149 Simplified BuildFastLiteral by eliminating manual allocation folding.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 12:06:45 +00:00
hpayer@chromium.org
bac73f2982 Disabling escape analysis.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 11:58:08 +00:00
mstarzinger@chromium.org
86e82dbbb6 Fix escape analysis for redefining operators.
This recognizes escape paths that flow through informative definitions
as an escaping use. This only applies to HCheckMaps so far.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 11:55:31 +00:00
bmeurer@chromium.org
899ec323af ConstantPoolSizeAt() should return number of Instructions instead, otherwise, some of the code will be treated as constant pool when printing code in ARM disassembler.
BUG=none

TEST=none
R=bmeurer@chromium.org

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

Patch from Bangfu Tao <bangfu.tao@samsung.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 11:49:46 +00:00
haitao.feng@intel.com
94621761b8 Consolidate SMI functions into one area for X64
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 11:41:14 +00:00
yurys@chromium.org
1083d1f817 Remove deprecated profiler API
This change removes --prof-lazy command line flag that was introduced for the old CPU profiler implementation in Chrome DevTools. DevTools now use profiler API defined in v8-profiler.h

This change also removes methods for pausing resuming --prof profiler. These methods were deprecated in v.3.20 (https://code.google.com/p/v8/source/browse/branches/3.20/include/v8.h#4629)

After this change the profiler will always start if --prof option is passed and can be stopped either in the tests or if write to log file fails.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 10:42:55 +00:00
bmeurer@chromium.org
e76482f2da Cleanup Mutex and related classes.
Drop the previous Mutex and ScopedLock classes from platform files.

Add new Mutex, RecursiveMutex and LockGuard classes, which are
designed after their C++11 counterparts, so that at some point
we can simply drop our custom code and switch to the C++11
classes. We distinguish regular and recursive mutexes, as the
latter don't work well with condition variables, which will be
introduced by a followup CL.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 09:58:30 +00:00
yurys@chromium.org
82590dd542 Use V8_OS_* variables for platform detection in the sampler code
BUG=None
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 09:56:30 +00:00
olivf@chromium.org
5659e7c84e Fix assert triggered by constant folding.
Add<> asserts the return type, which might not be an HAdd in this case
because of constant folding.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 09:54:52 +00:00
bmeurer@chromium.org
b320dfcf58 Reland^2 "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).

The previous Windows issues have been resolved, and we now use GetTickCount64()
on Windows Vista and later, falling back to timeGetTime() with rollover
protection for earlier Windows versions.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 09:15:13 +00:00
mstarzinger@chromium.org
39c3a63a84 Enable escape analysis for Hydrogen.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 08:39:59 +00:00
mstarzinger@chromium.org
9ed8f18376 Prepare push to trunk. Now working on version 3.21.7.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 08:09:40 +00:00
plind44@gmail.com
e0428617fe MIPS: Sync structure to r14382.
Port r14382 (5ef0d87)

Original commit message:
ARM: VFP cleanup now that VFP2 is the baseline

BUG=none
TEST=none
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 03:29:24 +00:00
titzer@chromium.org
22b70b0508 Add OptimizedCodeEntry as a new heap object type. An optimized code entry represents an association between the native context, a function, optimized code, and the literals. Such associations are needed by the deoptimizer and optimized code cache to efficiently find related optimized code and functions for a given context or shared function info.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 16:48:40 +00:00
jkummerow@chromium.org
3747b5bc6d Delete HAbnormalExit. It does more harm than good.
BUG=v8:2843
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 15:00:30 +00:00
bmeurer@chromium.org
adab11d0f9 Revert "Cross-compiling from Linux to Android requires -lrt for the host toolset.", "Fix Visual Studio debug build after r16398." and "Reland "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class.""
This reverts commit r16398, r16399 and r16402 for breaking the Windows
WebKit tests. Will reland fix which doesn't use High Resolution Timer
for ElapsedTimer (we suspect QueryPerformanceCounter overhead is
responsible for test breakage).

TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 14:32:08 +00:00
mstarzinger@chromium.org
3fb53cf83a Remove obsolete Oddball setters in FixedArray.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 14:26:22 +00:00
mstarzinger@chromium.org
57ac971a78 Implement proper map checks of captured objects.
R=verwaest@chromium.org
TEST=mjsunit/compiler/escape-analysis

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 14:16:57 +00:00
bmeurer@chromium.org
dc09ddcb9d Cross-compiling from Linux to Android requires -lrt for the host toolset.
R=yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 14:11:07 +00:00
bmeurer@chromium.org
a1bf044838 Fix Visual Studio debug build after r16398.
TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 13:36:28 +00:00
bmeurer@chromium.org
e2b4525397 Reland "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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 13:03:06 +00:00
verwaest@chromium.org
9d0b1590a5 Reuse AddFastPropertyUsingMap in AddFastProperty
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 13:01:53 +00:00
verwaest@chromium.org
652b174cfc Merge verbatim descriptors from other (the descriptor of the map being updated) rather than this (descriptors of the most updated map found in the transition tree).
BUG=v8:2863
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 12:37:14 +00:00
verwaest@chromium.org
24bbfdfa53 Simplify logic by extracting local lookup before the switch.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 12:36:46 +00:00
mstarzinger@chromium.org
3b616a74ea Fix lost store side effects with escape analysis.
This preserves side effects from stores in HCapturedObject markers so
that simulates following these markers are not merged away.

R=titzer@chromium.org
TEST=mjsunit/compiler/escape-analysis --deopt-every-n-times [3,6,9]

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 12:36:32 +00:00
hpayer@chromium.org
65843dbf3a Insert allocation memento clear instructions after the dominating allocate instruction.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 12:35:07 +00:00
bmeurer@chromium.org
caca2b32cf 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
2013-08-28 12:32:56 +00:00
bmeurer@chromium.org
1d3f6815e3 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
2013-08-28 11:38:20 +00:00