Commit Graph

94 Commits

Author SHA1 Message Date
mike@belshe.com
0b4b32d9f7 add ticks to tickprocessor
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-20 01:56:08 +00:00
mikhail.naganov@gmail.com
4cc5c314d1 Profiler tick processor now counts IC ticks on behalf of a caller.
This is enabled by default. To get back to old behavior, use '--separate-ic' switch.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-18 16:12:40 +00:00
mikhail.naganov@gmail.com
ddd2ac4015 Refactored command-line options handling in tick processor scripts
to remove code duplications. This makes easier adding new options.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-18 13:45:54 +00:00
sgjesse@chromium.org
98208125cb Include all the code in code creation log events. The code object header size is now added to the size Before ticks the last instructions of a JavaScript functions ended up as unaccounted in the profile.Include ticks in the the last created code object in the profile.Show the unaccounted ticks in the profile as a percentage together with the rest. Added an option to ignore unaccounted ticks in the percentage calculation.
Review URL: http://codereview.chromium.org/21410

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-18 10:29:56 +00:00
mikhail.naganov@gmail.com
a23fd3284a Added the simplest call stack sampling and call profile in tick processor output.
Currently only two stack frames are sampled (current function and its caller).

Output of tick processor looks like this:

 [Call profile]:
   total  call path
   15.2%  LazyCompile: am3 crypto.js:108  <-  LazyCompile: montReduce crypto.js:583
    6.5%  LazyCompile: am3 crypto.js:108  <-  LazyCompile: bnpSquareTo crypto.js:431
    2.9%  Builtin: KeyedStoreIC_Generic  <-  LazyCompile: montReduce crypto.js:583
    2.3%  LazyCompile: am3 crypto.js:108  <-  LazyCompile: bnpMultiplyTo crypto.js:415

Tested under Windows, Linux and OS X.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-17 14:45:45 +00:00
sgjesse@chromium.org
85584333f9 Support for building V8 with MinGW
V8 can now be build with MinGW. It still fails the following four tests in debug mode:

  mjsunit/parse-int-float
  mjsunit/mirror-array.js
  mjsunit/integer-to-string.js
  mjsunit/regress/regress-114.js

Building with MinGW has been tested with version 5.1.4 using GCC 3.4.5.

In addition to supporting MinGW this change also makes it more explicit which targets needs to link with which libraries.

BUG=64
Review URL: http://codereview.chromium.org/20177

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-09 15:06:07 +00:00
mikhail.naganov@gmail.com
3835e915c4 Adding src_file_name:line_number into perf log entries for compiled JS functions.
Thus, instead of the following profiler records:
   1.5%    1.5%   LazyCompile: <anonymous>
we'll now have these:
   1.5%    1.5%   LazyCompile: <anonymous> richards.js:309

Basically, I translated two functions from messages.js into C++.
In the next CL I will update messages.js to use added native functions.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-03 10:52:02 +00:00
olehougaard
da4fdea61a Fixing the flakiness of the serialization tests by assuring that serialization is run before every deserialization test.
Review URL: http://codereview.chromium.org/19541

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-03 08:35:03 +00:00
erik.corry@gmail.com
18d6c23971 Tell presubmit.py that regexp-pcre.js doesn't need a standard copyright
message since it has a special one.
Review URL: http://codereview.chromium.org/19752

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-02 16:27:08 +00:00
ager@chromium.org
06d96bade5 jsmin does not have our copyright header and shouldn't have. Exclude
it from the presubmit check.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-28 11:49:44 +00:00
deanm@chromium.org
aa8662545a Further minify non-visible JavaScript.
This imports a Python version of Douglas Crockford's JSMin.  JavaScript files can annotate that they want to be run through the minifier.  Currently debug and mirror are minified.

This results in ~12k savings on the final binary size.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-28 10:15:11 +00:00
maruel@chromium.org
4c8cd0d346 Fix snapshot generation on Visual Studio. Compiling source files generated
inside the same project is flaky with VisualStudio when building with
Incredibuild.
So I splitted the mksnapshot.exe generation, snapshot.cc generation and
snapshot.cc compilation in three different projects.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-27 16:20:10 +00:00
deanm@chromium.org
89bf4d5634 Strip /* */ style comments in js2c. Saves ~17k of binary size.
Review URL: http://codereview.chromium.org/19012


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-27 13:08:06 +00:00
iposva@chromium.org
ff3433d0fd - Preserve bootstrapper state across thread switches (fixes issue 143).
- Make sure stack guards are properly setup even when preemption is active.
- Fix missing v8::Locker and v8::Unlocker use in d8.cc.
- Threads forked in d8 do get their own context setup.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-26 18:09:46 +00:00
iposva@chromium.org
e718576d4f Split handle scopes into an internal version and a version accessible
through the API. This allows us to verify state on entry through the API.
In this change verification in the API entry is checking that the current
thread holds the V8 lock when a HandleScope is instantiated if a v8::Locker
has ever been used by the V8 instance.
Review URL: http://codereview.chromium.org/18707

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-23 17:22:23 +00:00
iposva@chromium.org
92b0ed1132 Fix Xcode project:
- Add regexp-stack.[cpp|h]

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-17 01:08:54 +00:00
lrn@chromium.org
21d2865757 Separately growing stack for irregexp ia32 backtrack stack.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-12 13:05:23 +00:00
ager@chromium.org
e639876dbe Allow 2009 as a valid year in the copyright header.
Review URL: http://codereview.chromium.org/16568

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-07 11:51:03 +00:00
christian.plesner.hansen@gmail.com
d7c933e7ae Added support in the profiler for creating 'regions' that cover part
of the generated code.  These can be used by the profiler to
categorize the ticks that occur within generated code and thereby show
more detailed information about where time is spent in generated code.
For instance, this is what the profiler displayed for a simple regexp
benchmark with irregexp-native before:

[JavaScript]:
   total  nonlib   name
   87.2%   87.2%   RegExp: (?:\w*\W+)*

This is what we can display now:

[JavaScript]:
   total  nonlib   name
   87.2%   87.2%   RegExp: (?:\w*\W+)*
                   -  53.0%  56.7% BranchOrBacktrack
                   -  14.9%  59.8% CheckCharacterLT
                   -  13.7%  20.4% CheckStackLimit
                   -   6.7%   6.7% SafeCall
                   -   2.7%   7.0% CheckCharacterGT
                   -   2.4%   2.4% SafeReturn
                   -   2.1%   2.1% LoadCurrentCharacter
                   -   1.8%   1.8% PushRegister
                   -   0.9%   0.9% PopRegister
                   -   0.9%   0.9% AdvanceRegister
                   -   0.3%   0.3% PopCurrentPosition
                   -   0.3%   0.3% CheckGreedyLoop
                   -   0.0%  20.4% PushBacktrack
                   -   0.0%  22.3% CheckCharacter
                   -   0.0%   2.4% IfRegisterLT


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-19 13:12:43 +00:00
sgjesse@chromium.org
e0c7b0f366 Added command line debugger to D8 shell.
break location [condition]
  clear <breakpoint #>
  backtrace [from frame #] [to frame #]]
  frame <frame #>
  step [in | next | out| min [step count]]
  print <expression>
  source [from line [num lines]]
  scripts
  continue
  help

It is enabled through the option --debugger which is on by default.
Review URL: http://codereview.chromium.org/14509

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-18 10:06:49 +00:00
iposva@chromium.org
c35f6aeae1 Add missing files (debug-<architecture>.cc) to the Xcode project.
Review URL: http://codereview.chromium.org/14120

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-15 20:40:12 +00:00
sgjesse@chromium.org
1d388d0778 Moved the code generation for debug break stubs from builtins* to debug*. From builtins* all code generation delegate to debug*. Added files debug-ia32.cc and debug-arm.cc for platfoem specific code generation of debugger stubs.
Removed a dead file reference (frames-ia32-inl.h) from the Visual Studio project.

Updated the ARM Visual Studio project to build again by adding all the RegExp files.
Review URL: http://codereview.chromium.org/13657

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-09 11:12:14 +00:00
iposva@chromium.org
f306b97855 Fix the Xcode build ARM targets.
TBR=mark
Review URL: http://codereview.chromium.org/13187

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-05 22:27:22 +00:00
christian.plesner.hansen@gmail.com
dc2077465f Added support in d8 for memory-mapped counters and added the python
stats-viewer tool.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-03 09:35:21 +00:00
sgjesse@chromium.org
a56ced1b87 Added regexp-macro-assembler-tracer .cc and .h files to Visual Studio project to make it build.
Review URL: http://codereview.chromium.org/13047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-02 14:28:04 +00:00
iposva@chromium.org
7529537f71 Update Xcode project to contain the files for Irregexp.
Review URL: http://codereview.chromium.org/13025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-01 23:06:09 +00:00
erik.corry@gmail.com
49d05495d8 * Remove an unused layer of abstraction by not having both a macro assembler and
an assembler when compiling to bytecode.  This fixes
  http://code.google.com/p/v8/issues/detail?id=165
* Preload the 'current character' register when starting a match (byte code only
  at the moment).
Review URL: http://codereview.chromium.org/10995

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-28 10:37:06 +00:00
lrn@chromium.org
4eb1913cea New regexp files are now included in VS project.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-25 12:08:13 +00:00
sgjesse@chromium.org
112e9ebbe5 Fixed Visual Studio build with snapshot when V8 is checked out in a directory with spaces in the path.
Review URL: http://codereview.chromium.org/12428

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-25 10:59:02 +00:00
ager@chromium.org
41a5c9212e Apply patch from Alexander Botero-Lowry that adds FreeBSD platform
support.
Review URL: http://codereview.chromium.org/11347

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-21 10:06:29 +00:00
sgjesse@chromium.org
8b45db89d6 Changed the handling of Win32 function SetErrorMode to be more correct. The flag to prevent error dialogs is now merged with existing flags, and the error mode is now reset which it was not before.
Review URL: http://codereview.chromium.org/11471

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-19 10:09:21 +00:00
feng@chromium.org
47c71e84a8 Some fixes in ARM simulator:
1) create a simulator per thread and using thread storage;
2) capitalize two function names;
3) use sscanf instead of sscanf_s in arm simulator;
4) disable warning of sscanf when building with arm simulator;

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-12 22:57:04 +00:00
feng@chromium.org
b7a0a9f347 Add ARM simulator build files.
Review URL: http://codereview.chromium.org/9669

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-07 17:21:11 +00:00
feng@chromium.org
c1d5bcd852 Remove ARM files.
Review URL: http://codereview.chromium.org/9486

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-07 17:18:22 +00:00
sgjesse@chromium.org
84170eeb99 Change the test status file parser to fail if the line contains unparsed tokens.
Refactor the platform.system() tests and use macos when running on Mac.
Review URL: http://codereview.chromium.org/8763

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-31 13:12:35 +00:00
sgjesse@chromium.org
7cf09d8860 Changed the parsing a conditional expression in a test status file to look for 'if' and not 'IF' as all the status files use 'if'.
This change catches the regression from r646.
Review URL: http://codereview.chromium.org/8739

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-31 07:27:03 +00:00
kasperl@chromium.org
a2be3b6f84 Make sure that allocations through CALL_HEAP_FUNCTION
and runtime calls from JavaScript will always succeed
eventually if we have enough memory.
Review URL: http://codereview.chromium.org/8700

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-30 09:15:58 +00:00
sgjesse@chromium.org
0b96fb22f3 Added crash detection to tests on Linux.
Added the timeout condition to the CommandOutput class.
Review URL: http://codereview.chromium.org/8695

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-29 12:51:14 +00:00
sgjesse@chromium.org
5e03ca85e7 Made testing run on Linux again. Fixed spelling error.
TBR=plesner

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-29 10:19:21 +00:00
sgjesse@chromium.org
d9285da2a8 By default disable the general protection fault message box when
running tests on Windows. This requires 

Added the option --win-error-box to enable general protection fault
message box which can be convenient when debugging failing tests on
Windows.

Added crash detection when running tests on Windows. The output
is not fully polished but crashed indications are printed for the
different progess indicators.

Changed the OS::Abort on Windows from generating a "crash" (int3)
to calling abort(). This is to avoid tests which are known to fail
with out of memory errors to be detected as crashed tests.
Review URL: http://codereview.chromium.org/8676

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-29 09:52:31 +00:00
iposva@chromium.org
35939fd987 Track whether a node or variable are likely to be a Smi value. Propagate that
knowledge in the AST and inline the Smi check into the generated code if it
is deemed high value (e.g. in loops).

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-28 22:33:00 +00:00
sgjesse@chromium.org
2c3fdd8e25 Added a Visual Studio project for the d8 developer shell. Currently without readline support.
Review URL: http://codereview.chromium.org/7984

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-27 07:52:59 +00:00
christian.plesner.hansen@gmail.com
9d9f608a38 - Added caching of regexp data in the compilation cache.
- Changed the structure of regexp objects from having two internal
  fields to having a single field containing a fixed array, since it's
  easier to store the whole fixed array in the cache.
- Move printing of the command to after printing std{err,out} in the
  compact progress indicators in the test framework.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-24 08:40:02 +00:00
kasperl@chromium.org
50d9f5e256 Incorporate patches by Paolo Giarrusso to allow profiling
C++ functions in shared libraries, building in directories
containing spaces, and using named constants better.
Review URL: http://codereview.chromium.org/7864

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-22 09:46:09 +00:00
sgjesse@chromium.org
711ada81d1 Minor fixes
- support changes to js2c in Visual Studio build
  - handle empty handles in Utf8Value
  - add /nologo to sample link in SCons build

TBR=plesner
Review URL: http://codereview.chromium.org/7816

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-21 15:24:58 +00:00
iposva@chromium.org
3c7a8c39b0 - Update js2c.py to take a type parameter.
- Use the type parameter in the Xcode run script phases when building the
  libraries.cc and libraries-empty.cc files.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-21 14:32:23 +00:00
christian.plesner.hansen@gmail.com
1e52e36a8c Added development shell (d8) including readline support, counters and
completion.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-21 09:12:27 +00:00
kasperl@chromium.org
8df739da6d Improve profiler output to make it easier to see the
anonymous functions.
Review URL: http://codereview.chromium.org/7075

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 09:26:40 +00:00
kasperl@chromium.org
9a63d930e3 Add codegen-arm.h and codegen-ia32.h to VS project file.
Review URL: http://codereview.chromium.org/7063

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 06:40:11 +00:00
iposva@chromium.org
89c762edf4 Simplify CodeGenerator hierarchy by not using a base class.
There is nothing virtual about a CodeGenerator since we
either generate code for one platform or for the other.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 00:00:52 +00:00