Commit Graph

74 Commits

Author SHA1 Message Date
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
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
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
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
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
ager@chromium.org
87209d787a Landing for Martin Maly.
Add x64 targets to the v8 Xcode project. 
Move platform specific files into their own groups. 

BUG= 
TEST=

Code review URL: http://codereview.chromium.org/5958020/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 08:59:02 +00:00
ager@chromium.org
cd73368f83 Landing for Martin Maly.
Fix Xcode project.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-03 08:13:37 +00:00
sgjesse@chromium.org
e21d76a0e3 1. Added support for object printing for release mode using the
objectprint=on (defaults to off) option (which defines OBJECT_PRINT).
2. Added the ability to print objects to a specified file instead of
   just stdout.
3. Added a use_verbose_printer flag (true by default) to allow some
   object printouts to be less verbose when the flag is false.
4. Fixed a bug in VSNPrintF() where it can potentially write into an
   empty char vector.

Patch by Mark Lam from Hewlett-Packard Development Company, LP

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 10:38:19 +00:00
ager@chromium.org
d3341acd45 Landing for Martin Maly.
Update the XCode project file.

Updating the Xcode project after crankshaft landed.

Codereview URL: http://codereview.chromium.org/5834001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 07:47:35 +00:00
lrn@chromium.org
4fa607ec57 Revert unkosher change to xcode project.
Should have been reverted before committing 5775, but that revert failed to stick.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-11 08:11:27 +00:00
lrn@chromium.org
f386f97476 Move part of scanner.* into scanner-base.* for reuse in preparser scanner.
Make checks.h not depend on flags.h or global.h (or anything else except
include/v8stdint.h). Only checks.cc has the dependencies (so another
implementation of checks.cc can be provided by the preparser).
Now files depending on checks.h (using ASSERT macros) can include it
directly without depending on all of v8.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-05 13:33:40 +00:00
ager@chromium.org
08da2bd6fb Remove vm-state.cc from build files. Forgot to do that when
removing the file from the repository.
Review URL: http://codereview.chromium.org/3950001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-20 06:47:49 +00:00
lrn@chromium.org
2c85faf1ae Refactored string search code.
Made string search state explicit for repreated calls (a StringSearch class).

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-29 10:57:23 +00:00
whesse@chromium.org
82309445ad Move code stub implementations from codegen-[platform].cc files to new code-stub-[platform].cc files, and declarations to new code-stub-[platform].h files.
Remaining work is to do the same for platform-independent code stub declarations, and to remove all dependencies on codegen header files from code stub files.
Review URL: http://codereview.chromium.org/3195022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 09:44:44 +00:00
ager@chromium.org
3e936b547a Remove experimental fast-codegen. We are no longer working on this
approach.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-13 09:07:09 +00:00
vegorov@chromium.org
7e167a9585 Add object-visiting.cc into GYP/XCode/MSVC project files.
Review URL: http://codereview.chromium.org/3166008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-11 15:18:01 +00:00
vegorov@chromium.org
ec3f9563c9 Fix XCode build.
Review URL: http://codereview.chromium.org/3056028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-29 08:31:36 +00:00
mikhail.naganov@gmail.com
decd0fed78 CPU profiler: make code events handling scalable.
I changed the implementation of a queue between the VM and processor
thread to be unbounded and lock-free, using Herb Sutter's example from
DDJ article: http://www.ddj.com/high-performance-computing/210604448
This had brought back profiling overhead to a minimum for the page
from Chromium's issue 16184.

BUG=714

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-22 05:27:19 +00:00
erik.corry@gmail.com
d0241c98c5 Remove the fledgling Thumb2 support since we are concentrating
on other ways to make ARM code more compact.
Review URL: http://codereview.chromium.org/2080017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-21 09:23:33 +00:00
erik.corry@gmail.com
c148d95196 Change to allow d8 to compile on MacOSX.
Review URL: http://codereview.chromium.org/1747014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-26 11:41:56 +00:00
erik.corry@gmail.com
e1b3b92a2c Make not sucking at regexp the default
(remove V8_NATIVE_REGEXP flag, add
V8_INTERPRETED_REGEXP flag).
Review URL: http://codereview.chromium.org/1635001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-19 19:30:11 +00:00
mikhail.naganov@gmail.com
1f56c4c7af Update MSVS and Xcode projects to make V8 compilable.
MSVS: define ENABLE_VM_STATE_TRACKING
Xcode: add missing files, sort project

BUG=673

TBR=sgjesse@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-14 08:31:37 +00:00
mikhail.naganov@gmail.com
c520e28dcb Make VM state tracking to be independent of logging and profiling.
Also pull out VMState into its own set of source files.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-08 13:37:39 +00:00
mikhail.naganov@gmail.com
070ee02057 Add include/v8-profiler.h into manually maintained project files.
Sorry, forgot about it. No need to change v8.gyp because it only
references the whole 'include' directory.

TBR=sgjesse@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-06 17:15:19 +00:00
erik.corry@gmail.com
f5523ecc6a Split the virtual frame into heavy and light versions.
The heavy version is for x86 and x64.  The light version
is for ARM and MIPS.  Remove the elements_ array from the
virtual frame in the light version.  More simplifications
to come, followed by light register allocation.
Review URL: http://codereview.chromium.org/1164002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-25 13:18:00 +00:00
mikhail.naganov@gmail.com
9582645a02 Add basic C++ implementation of CPU profiler.
Review URL: http://codereview.chromium.org/1079006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-19 09:46:53 +00:00
mikhail.naganov@gmail.com
d2188658ca Re-apply r4159 now with working test on x64
TBR=sgjesse@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-17 13:15:42 +00:00
fschneider@chromium.org
9f318feb93 Revert r4159 because of x64 test failures.
Review URL: http://codereview.chromium.org/1049003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-17 13:04:07 +00:00
mikhail.naganov@gmail.com
ce9298029d Implement circular queues for the C++ version of CPU profiler.
Circular queues serve as a transport for communicating between
VM, stack sampler and analyzer threads. Logging requirements
for VM and stack sampler are completely different, that's why
I introduced two different versions of CQs.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-17 12:25:10 +00:00
mikhail.naganov@gmail.com
12d252eb81 Start migrating profiles processing to C++.
Adding code for maintaining (address -> name) mapping and building
call trees.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-15 14:11:19 +00:00
mikhail.naganov@gmail.com
eb299d5d18 Xcode project: add fast-codegen sources.
TBR=iposva@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 10:45:31 +00:00
iposva@chromium.org
3f1db0218e - Update Xcode project.
Review URL: http://codereview.chromium.org/268030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-10 00:38:44 +00:00
mikhail.naganov@gmail.com
abc0bd46f6 Add initial version of retainers heap profile.
The profile is taken together with constructors profile. In theory, it
should represent a complete heap graph. However, this takes a lot of memory,
so it is reduced to a more compact, but still useful form. Namely:

 - objects are aggregated by their constructors, except for Array and Object
   instances, that are too hetereogeneous;

 - for Arrays and Objects, initially every instance is concerned, but then
   they are grouped together based on their retainer graph paths similarity (e.g.
   if two objects has the same retainer, they are considered equal);

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 13:41:24 +00:00
sgjesse@chromium.org
3dd74076d1 Control profiling/debugger support from build script.
The SCons build now has the options profilingsupport and debuggersupport for controlling the setting of the defines ENABLE_LOGGIGN_AND_PROFILING and ENABLE_DEBUGGER_SUPPORT. By default both are set to true.

The changes to the XCode project have not been tested.
Review URL: http://codereview.chromium.org/195061

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-11 12:26:15 +00:00
christian.plesner.hansen@gmail.com
af6c6a5533 Api inlining. Made some core functionality available in the api and
made inline versions of some hot functions.  Changed api to use
internal Object pointers rather than void pointers.

Speeds up getElementById by ~7%.
Review URL: http://codereview.chromium.org/173348

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 10:33:11 +00:00
mikhail.naganov@gmail.com
340bb1092d Remove the rest of references to jsregexp-inl.h
TBR=kasperl@chromium.org

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-31 07:55:07 +00:00
iposva@chromium.org
260cacfde7 - Add frame-element.cc to the Xcode project.
Review URL: http://codereview.chromium.org/155680

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 06:32:29 +00:00
iposva@chromium.org
1ea35a858f - Added missing braces in an if statement as a drive-by-edit.
- Removed executable bits from Xcode project file.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 15:00:35 +00:00
lrn@chromium.org
72de7ab74e Separate native and interpreted regexp by compile time flag, not runtime.
Clean-up of RegExp code.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 08:11:19 +00:00
antonm@chromium.org
ecfd1f1017 Attempt to reduce performance penalty for logging and profiling
Review URL: http://codereview.chromium.org/125141

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 13:09:34 +00:00
mikhail.naganov@gmail.com
e48095b87c Implement a dynamically growing memory log buffer with an upper limit.
The goal of this change is to allow longer profiling sessions and preserve memory when profiler isn't started. The buffer starts with 64K and grows until it reaches the upper limit, which is currently set to 50MB --- according to my evaluations, this is enough for at least 20 minutes of GMail profiling. As we're planning to introduce compression for the profiler log, this time boundary will be significantly increased soon.

To make possible unit testing of the new component, I've factored out Logger's utility classes into a separate source file: log-utils.h/cc. Log and LogMessageBuilder are moved there from log.cc without any semantical changes.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-28 07:08:09 +00:00
deanm@chromium.org
2b56660a8b Introduce two separate classes of processor detection:
- TARGET, the architecture we will generate code for.
  This is brought it from the build system.
- HOST, the architecture our C++ compiler is building for.
  This is detected automatically based on compiler defines.

This adds macros for 32 or 64 bit, and cleans up some
include conditionals, etc.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 12:06:20 +00:00
iposva@chromium.org
dc6a6f71b8 Add version.cc and version.h to Xcode project.
Review URL: http://codereview.chromium.org/100211

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-30 17:06:02 +00:00
ager@chromium.org
774d0d504b Fix the xcode project to define the correct V8_ARCH_*.
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/99188

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-29 14:06:10 +00:00
lrn@chromium.org
ea56336518 Create build structure for X64.
Possible to attempt to build for X64.
Build will be unsuccessful, since all x64 source files are
missing and pointers are reinterpreted as integers everywhere.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-29 13:11:48 +00:00
iposva@chromium.org
a6434ab5e4 Fix names after move of architecture dependent files.
TBR=lrn

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-29 00:01:51 +00:00
ager@chromium.org
5efbfcff22 Fix V8 xcode build.
Let xcode fix a couple of things and add json-delay.js to the project.
Review URL: http://codereview.chromium.org/93122

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-24 13:18:40 +00:00