Commit Graph

10894 Commits

Author SHA1 Message Date
hpayer@chromium.org
5198328f08 On-the-fly bookkeeping of PagedSpace memory kept in free-lists.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 10:24:24 +00:00
rossberg@chromium.org
a96ea2faa1 Put common case first
This might fix a 2% regression that we might be observing for CL 14128.

R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 09:53:43 +00:00
yurys@chromium.org
c7ce87f865 Add sanity test for CPU profiler
The new test checks full CPU profiling cycle: using public
V8 API it starts profiling, executes a script, stops profiling
and analyzes collected profile to check that its top-down
tree has expected strutcture. The script that is being profiled
is guaranteed to run > 200ms to make sure enough samples
are collected.

To avoid possible flakiness due to non-deterministic time required
to start new thread on varios OSs when Sampler and ProfilerEventsProcessor
threads are being started the main thread is blocked until the threads
are running.

Also I removed the heuristic in profile-generator.cc where we try
to figure out if the value on top of the sampled stack is return address
of some frameless stub invocation. The code periodically gives false positive
with the new test ending up in an extra node in the collected cpu profile.
After discussion with jkummerow@ we concluded that the logic is too fragile
and that we can address frameless stub invocations in a more reliable way
later should they have a noticeable effect on cpu profiling.

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 09:47:44 +00:00
yangguo@chromium.org
dca3698584 Fix ARM build.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 09:35:11 +00:00
mstarzinger@chromium.org
a22790bfed Change Context::New to not create persistent handles.
This moves the responsibility of putting a new context into a persistent
handle to the embedder. Also it removes one API function where the copy
constructor for persistent handles is needed.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 09:34:37 +00:00
yangguo@chromium.org
996a80df45 Fix OSR for nested loops.
R=jkummerow@chromium.org
BUG=v8:2618

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 09:24:31 +00:00
mstarzinger@chromium.org
f06084c13d Revert "On-the-fly bookkeeping of PagedSpace memory kept in free-lists."
This reverts r14197 because of tes failures accross the board.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 09:19:18 +00:00
yangguo@chromium.org
cba3446d41 Use PrintF instead of fprintf.
R=sven@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 09:18:41 +00:00
mstarzinger@chromium.org
dd70ce29d1 Unify the way cctest initalizes the VM for each test case.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 08:29:39 +00:00
mstarzinger@chromium.org
4623e71123 GDBJIT: Use runtime_zone to fix --gdbjit_full
R=yangguo@chromium.org
BUG=v8:2608

Review URL: https://codereview.chromium.org/13813014
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 08:10:51 +00:00
hpayer@chromium.org
96220f984f On-the-fly bookkeeping of PagedSpace memory kept in free-lists.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 08:07:58 +00:00
svenpanne@chromium.org
c9e8d87057 Unbreak mipsel.debug.check
Review URL: https://codereview.chromium.org/14030002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 07:25:22 +00:00
palfia@homejinni.com
fbcea27e9f MIPS: Activate generation of Crankshafted KeyedStores
Port r14186 (ac288c29)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 05:47:22 +00:00
palfia@homejinni.com
06869e752e MIPS: Always check global property cells for readonliness before storing. Add check when the global object is the last in the chain.
Port r14173 (97683cb2)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 05:46:09 +00:00
verwaest@chromium.org
64f34cb761 Eagerly parse expected transitions in JSON.
Review URL: https://chromiumcodereview.appspot.com/13741010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 16:49:28 +00:00
verwaest@chromium.org
79d18ea332 Let ComputeTarget fail if it skips over NORMAL objects.
BUG=v8:2595

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 16:38:51 +00:00
danno@chromium.org
0f11c7971e Fix KeyedAccessStoreMode on Windows
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 16:26:30 +00:00
mstarzinger@chromium.org
87c564efb6 GDBJIT: Properly terminate sub program and compile unit
Review URL: https://codereview.chromium.org/13781002
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 15:25:40 +00:00
ulan@chromium.org
7bdfa18ff9 Minor Native Client specific changes to files in src.
These changes are required for Native Client validation and to
accomodate the limitations of the NaCl runtime.

BUG=2614

Review URL: https://chromiumcodereview.appspot.com/13704002
Patch from Brad Chen <bradchen@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 15:11:45 +00:00
danno@chromium.org
008e73d6a0 Activate generation of Crankshafted KeyedStores
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 13:44:22 +00:00
yangguo@chromium.org
9f77ba9f1f Add an option to dump core when an uncaught exception is thrown.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 11:31:10 +00:00
mvstanton@chromium.org
ea2d9e387d Remove SSE2 feature checks from x64 code (it is always on)
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 10:32:00 +00:00
jkummerow@chromium.org
bf10fdcdd1 Fast-forward version number on bleeding_edge. Now working on version 3.18.0.
Review URL: https://codereview.chromium.org/13928004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 09:49:41 +00:00
mvstanton@chromium.org
cfccd1333d Bug fix, uint broke win32 build, use uint32_t
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 09:02:28 +00:00
mvstanton@chromium.org
b7022fd2be Improvements for x87 stack handling
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 08:42:57 +00:00
ulan@chromium.org
74839e86d7 Modifications to tests and test tools for Native Client V8.
BUG=2614

Review URL: https://chromiumcodereview.appspot.com/13638013
Patch from Brad Chen <bradchen@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 08:39:01 +00:00
jkummerow@chromium.org
e5b6a125fa A helper script for testing Native Client builds of V8.
This is modeled after tools/android-run.py. It is meant to be used
as a --command-prefix argument to tools/run-tests.py

BUG=2614

Review URL: https://codereview.chromium.org/13619011
Patch from Brad Chen <bradchen@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 08:31:17 +00:00
jkummerow@chromium.org
2500425d8d A new Makefile for the Native Client V8 builds.
This was derived from Makefile.android

BUG=v8:2614

Review URL: https://codereview.chromium.org/13561007
Patch from Brad Chen <bradchen@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 08:25:41 +00:00
yangguo@chromium.org
fe6fc554b0 Fix slow path of JSON.stringifier when GC strikes.
FlatContent is not GC-safe.

R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 08:12:59 +00:00
verwaest@chromium.org
c569d31ff5 Adding standard-compliance tests for array functions.
BUG=v8:2615

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 08:09:52 +00:00
verwaest@chromium.org
98d8c9e452 Always check global property cells for readonliness before storing.
Add check when the global object is the last in the chain.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 08:09:05 +00:00
jkummerow@chromium.org
36d3b1ef70 linux: fix uClibc ifdeffery
Remove duplicate inclusion of execinfo.h and make OS::DumpBacktrace
a NOOP on uclibc.

Review URL: https://codereview.chromium.org/13071007
Patch from Mostyn Bramley-Moore <mostynb@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 08:05:38 +00:00
svenpanne@chromium.org
d04de1fe1a Move context retrieval method around. Use delegation for implementation.
This is a refactoring of https://code.google.com/p/v8/source/detail?r=14146.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 07:34:32 +00:00
palfia@homejinni.com
741ce3b1a2 MIPS: ARM: Log an error if /proc/cpuinfo cannot be opened
Port r14112 (8cc5081c)

Original commit message:
This will make it easier to see if the current CPU feature detection
starts breaking because of process sandboxing.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-08 22:51:00 +00:00
yangguo@chromium.org
9559181b0e Fix worst-case behavior of MergeRemovableSimulates().
Currently, when a long series of removable simulates are merged, we do
this by merging them one by one as we find them.  As we merge the value
value lists of the simulates, those lists snowball so that we get a
quadratic complexity wrt runtime and memory consumption.

Instead, we gather simulates that need to be merged, and merge them
backwards starting from the last simulate.

R=jkummerow@chromium.org
BUG=v8:2612

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-08 17:37:22 +00:00
yurys@chromium.org
3b65ecccf0 Remove LOGGER macro
Use already saved isolate pointer and avoid TLS lookup when
retrieving Logger instance

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-08 15:16:55 +00:00
yangguo@chromium.org
26ef04fa9c Fix bug in bignum implementation.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-08 15:13:57 +00:00
yurys@chromium.org
b293d4d4a2 No need to start Ticker for Crankshaft
Crankshaft doesn't depend on the sampler thread any more. No
need to start the that thread for Crankshaft.

BUG=v8:2609

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-08 15:09:03 +00:00
svenpanne@chromium.org
90a587088b Train wreck reduction.
Furthermore, this tiny patch avoids direct access to the context_ field.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-08 13:10:59 +00:00
mstarzinger@chromium.org
1345caa208 Devirtualize Parser
* src/parser.h: No one inherits from Parser, so the destructor can be
  non-virtual, removing the need for Parser to have a vtable. Also add
  BASE_EMBEDDED to it and to RegExpParser.

BUG=

Review URL: https://codereview.chromium.org/13640007
Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-08 11:53:50 +00:00
mstarzinger@chromium.org
17100fb205 Move StackHandlerConstants to platform-independent frames.h
* src/frames.h: Move StackHandlerConstants here, as it is the same for
  all architectures.

BUG=

Review URL: https://codereview.chromium.org/13638002
Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-08 11:17:32 +00:00
svenpanne@chromium.org
f7244bce57 Unbreak --deopt-every-n-times.
Review URL: https://codereview.chromium.org/13779003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-08 07:51:32 +00:00
danno@chromium.org
ffe7f6a1ba Remove ARM support for VFP2
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-07 04:34:20 +00:00
plind44@gmail.com
bdb305aade MIPS: Remove conflicting FPU check for code generation in soft-float mode.
TEST=

BUG=

Review URL: https://codereview.chromium.org/13724002
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-05 18:20:18 +00:00
palfia@homejinni.com
1a472f6468 MIPS: Force context allocation for variables in generator scopes.
Port r14152 (4e58a8ea)

Original commit message:
* src/scopes.h (ForceContextAllocation, has_forced_context_allocation):
  New interface to force context allocation for an entire function's
  scope.

* src/scopes.cc: Unless a new scope is a function scope, if its outer
  scope has forced context allocation, it should also force context
  allocation.
  (MustAllocateInContext): Return true if the scope as a whole has
  forced context allocation.
  (CollectStackAndContextLocals): Allow temporaries to be
  context-allocated.

* src/parser.cc (ParseFunctionLiteral): Force context allocation for
  generator scopes.

* src/v8globals.h (VariableMode): Update comment on TEMPORARY.

* src/arm/full-codegen-arm.cc (Generate):
* src/ia32/full-codegen-ia32.cc (Generate):
* src/x64/full-codegen-x64.cc (Generate): Assert that generators have no
  stack slots.

    * test/mjsunit/harmony/generators-instantiation.js: New test.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-05 16:48:36 +00:00
palfia@homejinni.com
a60d8b2e13 MIPS: Compile FastCloneShallowArrayStub using Crankshaft.
Port r14143 (8fd9594d)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-05 16:47:34 +00:00
verwaest@chromium.org
b67e017b4a Remove unnecessary explicity prototype check.
The prototype is implicitly checked through a map check of the holder.
This is either checked in CheckPrototypes, or as part of the IC.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-05 15:17:44 +00:00
yangguo@chromium.org
e33b68817b Fix Array.prototype.concat when exceeding array size limit.
R=verwaest@chromium.org
BUG=v8:581

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-05 15:12:59 +00:00
mstarzinger@chromium.org
1141d4afe5 Fix presubmit style warning for gdb-jit.cc
For many moons now I've been seeing this warning when running make x64.release.check:

  /home/wingo/src/v8/src/gdb-jit.cc:632:
     Single-argument constructors should be marked explicit.
     [runtime/explicit] [5]

This patch fixes it.

BUG=

Review URL: https://codereview.chromium.org/13724006
Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-05 15:10:51 +00:00
mstarzinger@chromium.org
b6efbd79de Force context allocation for variables in generator scopes.
* src/scopes.h (ForceContextAllocation, has_forced_context_allocation):
  New interface to force context allocation for an entire function's
  scope.

* src/scopes.cc: Unless a new scope is a function scope, if its outer
  scope has forced context allocation, it should also force context
  allocation.
  (MustAllocateInContext): Return true if the scope as a whole has
  forced context allocation.
  (CollectStackAndContextLocals): Allow temporaries to be
  context-allocated.

* src/parser.cc (ParseFunctionLiteral): Force context allocation for
  generator scopes.

* src/v8globals.h (VariableMode): Update comment on TEMPORARY.

* src/arm/full-codegen-arm.cc (Generate):
* src/ia32/full-codegen-ia32.cc (Generate):
* src/x64/full-codegen-x64.cc (Generate): Assert that generators have no
  stack slots.

* test/mjsunit/harmony/generators-instantiation.js: New test.

BUG=v8:2355
TEST=mjsunit/harmony/generators-instantiation

Review URL: https://codereview.chromium.org/13408005
Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-05 13:19:31 +00:00