Commit Graph

422 Commits

Author SHA1 Message Date
mmaly@chromium.org
51d1216f4c Fix Xcode project.
BUG=
TEST=

Review URL: http://codereview.chromium.org/6799016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 19:06:19 +00:00
ager@chromium.org
ea8312ba33 Reapply: Never use classic code generator.
Crankshaft is now the default on all platforms. This is the first
patch on the way to removing the classic code generator from the
system.

This time with no removal of the crankshaft flag. --nocrankshaft is
not at all the same as --always-full-compiler which I had used instead
for testing. That was what caused timeouts on the buildbots because of
repeated attempts to optimize hot functions. It makes sense to keep
the crankshaft flag in case you want to run only with the full
compiler and with no adaptive compilation.

R=vitalyr@chromium.org

Review URL: http://codereview.chromium.org/6759070

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-01 19:46:21 +00:00
sgjesse@chromium.org
8099bf3531 Revert "Never use classic code generator."
This reverts r7469 which might have caused the timeouts on the buildbot.

TBR=ager@chromium.org

BUG=
TEST=

Review URL: http://codereview.chromium.org//6788009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-01 14:38:30 +00:00
whesse@chromium.org
ac5d0019bc Revert "Made test.py not mention the defunct --crankshaft flag."
This reverts svn r7477.

BUG=
TEST=

Review URL: http://codereview.chromium.org/6760027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-01 13:27:28 +00:00
lrn@chromium.org
65fb2cf9cb Made test.py not mention the defunct --crankshaft flag.
Cleanup of X64 assembler.

Review URL: http://codereview.chromium.org/6764015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-01 13:07:37 +00:00
ager@chromium.org
1528bf7240 Never use classic code generator.
Crankshaft is now the default on all platforms. This is the first
patch on the way to removing the classic code generator from the
system.

R=kmillikin@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6771045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-01 10:52:18 +00:00
lrn@chromium.org
1c57935a43 Reapply changelist r7436.
Remove test for existence of VM. Not all tests need the VM.

Review URL: http://codereview.chromium.org/6783011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-31 08:12:17 +00:00
whesse@chromium.org
8f30d5922c Revert changelist r7436.
BUG=
TEST=

Review URL: http://codereview.chromium.org/6756036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-30 14:42:47 +00:00
lrn@chromium.org
0a6d586d09 Add test suite for the preparser.
The test suite builds the preparser test program and runs it on each .js file in
the test/preparser directory.
Currently it only checks that preparsing runs without crashing or erroring.
This also implicitly tests that the preparser library can be built.

TEST=test/preparser/*.js

Review URL: http://codereview.chromium.org/6777010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-30 14:00:36 +00:00
mikhail.naganov@gmail.com
a8af96990b Add initialization for has_external_callback field.
It looks like we initialize TickSample values twice in some
situations, but I will fix this in a separate change list.

R=sgjesse@chromium.org
BUG=1292
TEST=none

Review URL: http://codereview.chromium.org/6756031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-30 13:30:52 +00:00
vitalyr@chromium.org
7a74560fcc Fast TLS support on mac.
Review URL: http://codereview.chromium.org/6724028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-27 18:40:48 +00:00
vitalyr@chromium.org
963a75cc09 Fast TLS support.
This patch adds common infrastructure for fast TLS support and
implementation on win32. More implementations will be added soon.

Fast TLS is controlled by V8_FAST_TLS define which is enabled by
default in our gyp and scons builds. The scons build has
fasttls={on,off} option so that we can see the effects of slow TLS
when needed.

Review URL: http://codereview.chromium.org/6696112

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-27 16:14:20 +00:00
sgjesse@chromium.org
b05152a2a4 Make V8 build with the chromium shared library build
Fix the shell to not use functions from the v8::internal namespace when building with V8 in a shared library.

Remove the v8_preparser library. The dependencies for this target needs to be resolved after isolates have landed.
Review URL: http://codereview.chromium.org/6696067

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 10:54:23 +00:00
vitalyr@chromium.org
1dc8f7edb3 Store HValue uses in a custom small list structure.
This saves about 700K of zone allocation when compiling the V8
benchmark suite.

Review URL: http://codereview.chromium.org/6707001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 14:44:19 +00:00
sgjesse@chromium.org
63867eea60 Rename memory.h to v8memory.h
This is to avoid name collision with system include file named memory.h causing problems on some platforms.
Review URL: http://codereview.chromium.org/6716020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 11:50:39 +00:00
mikhail.naganov@gmail.com
cbbe713464 Change the way sampler / profiler handle external callbacks.
This should fix test-profile-generator/RecordStackTraceAtStartProfiling flakinness.

R=vitalyr@chromium.org
BUG=1261
TEST=test-profile-generator/RecordStackTraceAtStartProfiling

Review URL: http://codereview.chromium.org/6708056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 18:13:27 +00:00
ricow@chromium.org
4bb55fd341 Change cctests to use variant flags as part of the name for the serilization file.
Because we run all tests three times with different variant flags (to
test crankshaft) we might end up in a situation where we try to write
to the same serilization file from two different threads
simultaneously. The patch concats the variant flags at the end of the
serialization file name.
Review URL: http://codereview.chromium.org/6688068

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 12:57:25 +00:00
mmaly@chromium.org
7715206e48 Fix Xcode after isolates landing.
BUG=
TEST=

Review URL: http://codereview.chromium.org/6712049

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-19 02:23:59 +00:00
vitalyr@chromium.org
7976ca2cbc Merge isolates to bleeding_edge.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-18 20:35:07 +00:00
vitalyr@chromium.org
76e226f832 Revert r7268: it borked the history.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-18 19:41:05 +00:00
vitalyr@chromium.org
6ff7fdebd3 Merge isolates to bleeding_edge.
Review URL: http://codereview.chromium.org/6685088

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-18 18:49:56 +00:00
erik.corry@gmail.com
6c6a998e4e * Fix build errors on FreeBSD 8.2
* Fix Crankshaft on FreeBSD.
* Partially fix profiling on FreeBSD.
* Remove bash-isms from tick processor script.
Review URL: http://codereview.chromium.org/6673045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-16 11:15:43 +00:00
ager@chromium.org
ac1eb2d9a2 Disable v8 benchmark run from standard test.py runs.
Let's add it as a separate test run on the buildbots.

TBR=ricow@chromium.org

Review URL: http://codereview.chromium.org/6667039

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-16 10:03:13 +00:00
ager@chromium.org
8a5e4837f8 Add a V8 benchmark suite run to test.py to catch failures on the buildbot.
Review URL: http://codereview.chromium.org/6698029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-16 09:45:28 +00:00
whesse@chromium.org
30676b0abc X64: Make sure that all Win64 Visual Studio project file builds have a large enough stack.
Review URL: http://codereview.chromium.org/6626013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-07 09:27:43 +00:00
mikhail.naganov@gmail.com
3adfa360a2 Remove old Python version of tickprocessor
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-24 08:23:37 +00:00
mikhail.naganov@gmail.com
56788625b6 Fix CPU profiling for Crankshaft.
The main issue was due to multiple recompilations of functions.  Now
code objects are grouped by function using SFI object address.
JSFunction objects are no longer tracked, instead we track SFI object
moves. To pick a correct code version, we now sample return addresses
instead of JSFunction addresses.

tools/{linux|mac|windows}-tickprocessor scripts differentiate
between code optimization states for the same function
(using * and ~ prefixes introduced earlier).

DevTools CPU profiler treats all variants of function code as
a single function.

ll_prof treats each optimized variant as a separate entry, because
it can disassemble each one of them.

tickprocessor.py not updated -- it is deprecated and will be removed.

BUG=v8/1087,b/3178160
TEST=all existing tests pass, including Chromium layout tests

Review URL: http://codereview.chromium.org/6551011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-22 16:31:24 +00:00
vitalyr@chromium.org
25f2f21f50 grokdump: Simple windows minidump analysis on linux.
Analyses full minidump (.dmp) files.

Shows the processor state at the point of exception including the
stack of the active thread and the referenced objects in the V8
heap. Code objects are disassembled and the addresses linked from the
stack (pushed return addresses) are marked with "=>".

Review URL: http://codereview.chromium.org/6312058

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-22 14:25:26 +00:00
mmaly@chromium.org
4e6635ad66 Fix Xcode project.
TBR= ager@chromium.org

BUG=
TEST=

Review URL: http://codereview.chromium.org/6551006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-22 01:10:28 +00:00
vegorov@chromium.org
73c2b84b33 Cygwin support
Patch by Bert Belder.

BUG=v8:64
BUG=v8:964
BUG=v8:1029

Review URL: http://codereview.chromium.org/6525028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-17 16:33:10 +00:00
whesse@chromium.org
3245a23de0 ARM: Port new version of ParallelMove's GapResolver to ARM. Fix error in vstr(DoubleRegister, MemOperand), where it was implemented as a vldr, in r6830.
Review URL: http://codereview.chromium.org/6311010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-17 15:25:38 +00:00
mmaly@chromium.org
e0be3072b5 Implement assignment to undefined reference in ES5 Strict Mode.
Strict mode assignment to undefined reference.
Simple assignments (x = <value>) use CODE_TARGET_CONTEXT.
StoreIC stores its own strictness in extra_ic_state.
The strcitness is propagated as further ic stubs are generated.

Details:
* ReferenceError on assignment to non-resolvable reference in strict mode.
* Fix es5conform test expectation file.
* Add es5conform test suite into .gitignore.
* Fix Xcode project.
* Change implemented in virtual frame code generator, as well as full-codegen
  for all architectures.
* Fix debugger test.
* Fix comment for CODE_TARGET_CONTEXT
* Implement remaining StoreIC stubs to be strict mode aware.
* Trace extra_ic_state() for ic code stubs.

Code Review URL: http://codereview.chromium.org/6474026/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-13 16:19:53 +00:00
mmaly@chromium.org
3f4701df7f Revert r6756. Check failed on V8 arm - debug - crankshaft.
Need to investigate.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-11 23:25:07 +00:00
mmaly@chromium.org
fd6338bdda Implement assignment to undefined reference in ES5 Strict Mode.
Strict mode assignment to undefined reference.
Simple assignments (x = <value>) use CODE_TARGET_CONTEXT.
StoreIC stores its own strictness in extra_ic_state.
The strcitness is propagated as further ic stubs are generated.

Details:
* ReferenceError on assignment to non-resolvable reference in strict mode.
* Fix es5conform test expectation file.
* Add es5conform test suite into .gitignore.
* Fix Xcode project.
* Change implemented in virtual frame code generator, as well as full-codegen
  for all architectures.
* Fix debugger test.
* Fix comment for CODE_TARGET_CONTEXT
* Implement remaining StoreIC stubs to be strict mode aware.
* Trace extra_ic_state() for ic code stubs.

Code Review URL: http://codereview.chromium.org/6474026/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-11 21:39:59 +00:00
mikhail.naganov@gmail.com
efe7129277 removed
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-11 12:25:41 +00:00
mikhail.naganov@gmail.com
12e62e7154 Shorten constructor names in JS tickprocessor.
As they are no more used in DevTools profiler, there is no
need to prefix them with "devtools.profiler" namespace.

Review URL: http://codereview.chromium.org/6456025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-10 07:47:28 +00:00
whesse@chromium.org
e0422e5401 Make VS2005 project files compile without errors: changelist http://codereview.chromium.org/6286135/.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-09 15:58:55 +00:00
fschneider@chromium.org
17da434b29 Remove instruction summaries.
Instead of constructing a temporary container for all LOperands of each
instruction, the register works directly on the LIR instructions that
 provide an abstract interface for input/output/temp operands.

This saves allocation of zone memory and speeds up LIR construction,
but makes iterating over all uses in the register allocator slightly
more expensive because environment uses are stored in a linked list of
environments. We can fix this by using a flat representation of LOperands.


Review URL: http://codereview.chromium.org/6352006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-04 13:28:23 +00:00
whesse@chromium.org
3a52b68447 Fix compilation on 64-bit Windows, update Visual Studio projects.
Review URL: http://codereview.chromium.org/6312119

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-03 13:29:10 +00:00
mmaly@chromium.org
72b1d0c747 Fix Xcode project.
TBR=ager@chromium.org
Code review URL: http://codereview.chromium.org/6286016/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-01 16:20:04 +00:00
whesse@chromium.org
6c650cf1c2 Disable MSVC warning that default array initializers now work properly.
Review URL: http://codereview.chromium.org/6272017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-25 11:25:30 +00:00
whesse@chromium.org
136db7b861 Port new version of ParallelMove's LGapResolver to X64.
Review URL: http://codereview.chromium.org/6366003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-25 10:10:36 +00:00
mmaly@chromium.org
727aa91bbf Fix xcode.
TBR=arger@chromium.org

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-20 21:53:34 +00:00
sgjesse@chromium.org
198bcbaa13 Adding build script changes to support LiveObjectList functionality.
Patch by Mark Lam from Hewlett-Packard Development Company, LP

Review URL: http://codereview.chromium.org/6364002


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-20 08:38:01 +00:00
kmillikin@chromium.org
437914da90 Change the algorithm and generated code for parallel moves on IA32.
Instead of spilling and then immediately restoring eax to resolve
memory to memory moves, the gap move resolver now tracks registers
that are known to be free and uses one if available.  If not it spills
but restores lazily when the spilled value is needed or at the end of
the algorithm.

Instead of using esi for resolving cycles and assuming it is free to
overwrite because it can be rematerialized, the gap move resolver now
resolves cycles using swaps, possibly using a free register as above.

The algorithm is also changed to be simpler: a recursive depth-first
traversal of the move dependence graph.  It uses a list of moves to be
performed (because it mutates the moves themselves), but does not use
any auxiliary structure other than the control stack.  It does not
build up a separate list of scheduled moves to be interpreted by the
code generate, but emits code on the fly.

Review URL: http://codereview.chromium.org/6263005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 11:25:36 +00:00
ager@chromium.org
091626e8ec Landing for Martin Maly.
Fix x64 XCode project files.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 09:34:19 +00:00
whesse@chromium.org
5d3432b530 Add source file lithium-codegen-x64.cc. Add class declarations to lithium-codegen-x64.h.
Review URL: http://codereview.chromium.org/6135008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:24:18 +00:00
ricow@chromium.org
b4ea8c7f5e Enable sharding of individual testsuites in tools/test.py
This patch enables two new flags for the tools/test.py script;
--shard-count - giving the ability to split the tests to be run
into shard-count chunks.
--shard-run - giving the ability to specify which of the shards to actually run.

Example
  tools/test.py -j15 --shard-count=2 --shard-run=1 mozilla
would split the mozilla tests into two chunks and run the tests in the first chunk

Running:
  tools/test.py -j15 --shard-count=2 --shard-run=1 mozilla
  tools/test.py -j15 --shard-count=2 --shard-run=2 mozilla
is equivalent (in terms of test coverage) of just running:
  tools/test.py -j15 mozilla

In addition, tests are now sorted before they are returned from the
test specific ListTests methods (sputnik and mozilla tests where
already sorted before they where returned).

This change is needed to split a single test suite over two slaves on
the waterfall.


Review URL: http://codereview.chromium.org/6127003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 13:54:42 +00:00
ager@chromium.org
026842c50d Landing for Martin Maly.
Fix xcode project. 
Add missing files (lithium.cc, lithium.h, lithium-x64.cc). 
Add 64 bit targets to "All" targets group for Xcode build. 

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:17:05 +00:00
whesse@chromium.org
7c94bf13b9 Create platform-independent lithium files, move LGapResolver and LGapNode there
Review URL: http://codereview.chromium.org/6121001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:49:22 +00:00