Commit Graph

104 Commits

Author SHA1 Message Date
mstarzinger@chromium.org
b05ff5e0b9 Prototype of mark-and-compact support for Harmony weak maps.
R=vegorov@chromium.org
BUG=v8:1565
TEST=cctest/test-weakmaps

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 12:48:30 +00:00
mikhail.naganov@gmail.com
0a12f5dcf8 Fix issue 1354: Bad function name inference.
R=kmillikin@chromium.org, vitalyr@chromium.org
BUG=1354
TEST=test-func-name-inference

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 20:23:48 +00:00
mikhail.naganov@gmail.com
973fca1689 Fix issue 1417: check for script source availability when enumerating optimized functions.
R=kasperl@chromium.org,kmillikin@chromium.org
BUG=1417
TEST=test-log/Issue23768

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-17 08:40:30 +00:00
mikhail.naganov@gmail.com
70c4d58b5a Skip test-debug/DebuggerAgent on ARM. Issue 945.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 13:43:48 +00:00
mikhail.naganov@gmail.com
508b22c436 "Deiceolate" Thread classes.
Thread class was receiving an isolate parameter by default.
This approact violates the assumption that only VM threads
can have an associated isolate, and can lead to troubles,
because accessing the same isolate from different threads
leads to race conditions.

This was found by investigating mysterious failures of the
CPU profiler layout test on Linux Chromium. As almost all
threads were associated with some isolate, the sampler was
trying to sample them.

As a side effect, we have also fixed the DebuggerAgent test.

Thanks to Vitaly for help in fixing isolates handling!

R=vitalyr@chromium.org
BUG=none
TEST=none

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 09:54:04 +00:00
kmillikin@chromium.org
00f2ff321e Support optimization of named function literals.
Introduce a Hydrogen value for the value denoted by the function name.

R=fschneider@chromium.org,mnaganov@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 11:54:46 +00:00
sgjesse@chromium.org
fbd106d9cd MIPS: arch-independent changes to support mips.
This change supports all non-crankshaft features except serialization.

This must be built after the changes in http://codereview.chromium.org/6966031
are landed.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 07:56:20 +00:00
dslomov@chromium.org
adfa56af54 Speculative fix fo MultithreadedParallelIsolates on ARM
It looks like the problem with the test is too many concurrently created isolates.
Cranking the number to 100 on MacOS and Linux produce similar results.

BUG=http://code.google.com/p/v8/issues/detail?id=1375
TBR=vitalyr

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 17:29:47 +00:00
karlklose@chromium.org
00e8236096 ARM: Disable test test-lockers/MultithreadedParallelIsolates because it is flaky.
BUG=1375

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 12:30:01 +00:00
sgjesse@chromium.org
40172e6a7b Update mips infrastructure files.
- Merge to current tip of tree, fix build problems.
- Remove deprecated source files.
- Add cctest test-disasm-mips
- Consistently use single-reg push()/pop() (remove uppercase variants)
- Add assembler field accessors.
- More style fixes.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 14:28:09 +00:00
mikhail.naganov@gmail.com
22fdd1cdbb Add some more (failing) tests for function names inference.
After the "Naming Anonymous JavaScript Functions" paper by
S. M. Ecole, J. J. Barton, C. Petitpierre.

TBR=yurys@chromium.org
BUG=1354
TEST=test-func-name-inference/*

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 20:59:29 +00:00
karlklose@chromium.org
af37074c10 Skip crashing cctests.
Review URL: http://codereview.chromium.org/6877034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-19 10:34:34 +00:00
karlklose@chromium.org
b06ce8dd2c Correct test names for the failing deserialization tests in cctest.status.
Review URL: http://codereview.chromium.org/6877032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-19 07:50:46 +00:00
sgjesse@chromium.org
250b205456 ARM: Set expectations for failing deserializations tests to turn the bot green
R=karl.klose@chromium.org

BUG=v8:1075
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 12:30:13 +00:00
mikhail.naganov@gmail.com
2d95ed4b25 Remove snapshots-related code that is implemented in DevTools heap profiler.
Diffs and retaining paths are implemented on JS side. There is no need
to maintain native implementation.

R=vitalyr@chromium.org
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-29 12:52:07 +00:00
sgjesse@chromium.org
2531480d10 Re-establish mips basic infrastructure.
This commit adds current working versions of assembler, macro-assembler,
disassembler, and simulator.

All other mips arch files are replaced with stubbed-out versions that
will build.

Arch independent files are updated as needed to support building and
running mips.

The only test is cctest/test-assembler-mips, and this passes on the
simulator and on mips hardware.

TEST=none
BUG=none

Patch by Paul Lind from MIPS.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-28 13:05:36 +00:00
mikhail.naganov@gmail.com
c316adfc2d Trying to unskip test-profile-generator/RecordStackTraceAtStartProfiling and
test-cpu-profiler/CrashIfStoppingLastNonExistentProfile.

After r7293 and r7294 they might feel better.

TBR=vitalyr@chromium.org
BUG=1262,1263
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 06:39:16 +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
dimich@chromium.org
80268b8cbf Update cctest expectations: ass 2 timed out tests to skip list.
Review URL: http://codereview.chromium.org/6713052

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-18 21:51:10 +00:00
vitalyr@chromium.org
4057e679ac Mark cctest/test-profile-generator/RecordStackTraceAtStartProfiling as flakey.
Review URL: http://codereview.chromium.org/6709030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-18 15:10:00 +00:00
ager@chromium.org
01cd10569f Remove passing tests from ARM test expectations. Yay!
TBR=karlklose@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-21 11:58:19 +00:00
ager@chromium.org
0bd776a94f Remove passing tests from expectations. Yay!
Review URL: http://codereview.chromium.org/6488028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-21 11:55:45 +00:00
ager@chromium.org
fc7e79a838 x64: Implement the missing generic load and store operations.
Review URL: http://codereview.chromium.org/6541019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-18 12:54:43 +00:00
ricow@chromium.org
512a02764f X64: Add DoCallNamed, DoContext, DoCallGlobal, and DoLoadFunctionPrototype lithium instructions.
Review URL: http://codereview.chromium.org/6471025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-10 16:33:01 +00:00
lrn@chromium.org
19b734fd82 Fix potential overwriting of debug jumps of following code.
Add JSArrayLength, CallKnownFunction, and InstanceType operations.
Remove LadGlobal and StoreGlobal again (they fail).

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-04 14:09:03 +00:00
kmillikin@chromium.org
f1149734fc Partial fix for V8 issue 1079.
Record a safepoint with a deoptimization id for throw in optimized code.  We
don't seem to much care what the AST ID is because we will not be using it
for lazy deoptimization (throw doesn't return to the point of throw).  For
hygiene we use the actual ID of the throw expression.  Throw is no longer a
control-flow instruction, but it's followed by an unconditional abnormal
exit.  This is required to insert a simulate between the throw and the exit.

Make our optimized treatment of Function.prototype.apply act like a call and
have side effects.  This ensures that it will get a lazy deoptimization
environment.  Use that deoptimization ID in the safepoint for the call.

Deleting a property was also missing a deoptimization ID, though there was a
deoptimization environment assigned to the instruction.  Record the
environment and use the deoptimization ID at the safepoint.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-02 13:55:29 +00:00
antonm@chromium.org
93f8e3d821 Temporary disable comparison of optimizability of code objects in some cases.
With crankshaft, a code object can change its optimizability: it can start as
optimizable code object, but later we can find out it was a bad idea to
optimize it.  Alas, currently we don't have a proper event to communicate
this back to logger.  Hence we temporary allow a code object to be viewed
as optimizable judging from logs while being unoptimizable judging from
heap traversal.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-02-01 12:39:02 +00:00
sgjesse@chromium.org
579e711389 Fix test expectations from r6509
Review URL: http://codereview.chromium.org/6286011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-27 12:31:24 +00:00
sgjesse@chromium.org
3e811483f2 Change an invalid assert
BUG=v8:1079
Review URL: http://codereview.chromium.org/6332019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-27 11:55:58 +00:00
sgjesse@chromium.org
17aa262ce5 ARM: Fix the test expectations
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6253013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-26 13:26:36 +00:00
sgjesse@chromium.org
26a8dc3818 ARM: Make the ARM hardware builder green
Fix a bug in the --debug-code alignment check in the C entry stub.

Don't force the --debug-code flag in the ARM disassembler tests. The framework does support passing flags and the test runner will when running tests in debug mode.

Skip some deserialization tests which crashes from time to time.
Review URL: http://codereview.chromium.org/6393007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-26 09:52:25 +00:00
ricow@chromium.org
d5cab38a33 Add support for deoptimization on x64.
I did not take out the code relating to osr from the generate method
since this makes it easier to compare to ia32 (we will abort anyway when we hit the osr code so there should be no issues with having this in)
 

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-25 07:57:56 +00:00
lrn@chromium.org
e66ceb9079 X64 Crank: Implemented DoBranch and all *AndBranch comparisons.
Review URL: http://codereview.chromium.org/6374002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 10:17:18 +00:00
ager@chromium.org
5cc7b5c2db Clean up test lists. I cannot reproduce any of these locally. My guess
is that the mozilla ones were caused by the safe-point table problem
and the deoptimization ones are fixed by adding support for mod and
div.

Let's see if the buildbot agrees.
Review URL: http://codereview.chromium.org/6260007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 13:27:16 +00:00
ricow@chromium.org
3d245133a3 Enable compilation of very simple functions in x64 crankshaft.
This change includes support for safepointtables and adding deoptimization info (but not for deoptimizing).

Implemented crankshaft functions:
CallCode
GenerateSafepointTable
RegisterEnvironmentForDeoptimization
EmitGoto


This change allows us to compile very simple functions with crankshaft:
An empty function
A function returning a constant.
A function returning a parameter.

There is 6 disabled tests that require us to be able to deoptimize
which is currently not supported.


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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 13:11:39 +00:00
antonm@chromium.org
fae90d4f32 Make closures optimizable by Crankshaft compiler.
Currently only closures which only read from the context are supported.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 08:11:03 +00:00
whesse@chromium.org
2655060546 Fix errors in x64 crankshaft port, add failing tests to test expectations.
Review URL: http://codereview.chromium.org/6104004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 13:29:22 +00:00
sgjesse@chromium.org
82b9758e9a Update test expectations
The functions with DIV/MOV can get optimized if typefeedback indicate to use a binary op stub.
Review URL: http://codereview.chromium.org/6117001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 12:34:35 +00:00
ricow@chromium.org
44adf11d8a Add exception for test-deoptimization/DeoptimizeBinaryOperationDIV
under arm with crankchaft.

This test assumes that a specific function is always optimized when
running with crankshaft, but we do not yet support this on arm.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 09:34:45 +00:00
ager@chromium.org
5dc1d7a126 Update test expectations for ARM crankshaft build.
Review URL: http://codereview.chromium.org/5813002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 07:46:22 +00:00
vitalyr@chromium.org
fa9a0625ea Fix RecordStackTraceAtStartProfiling test.
Review URL: http://codereview.chromium.org/5598008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 14:10:41 +00:00
ricow@chromium.org
de6f019a7a Disable tests failing due to sockets on arm.
This is a copy of http://codereview.chromium.org/5365005/ against the 3.0 branch.

TBR: eric.corry


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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:59:50 +00:00
kasperl@chromium.org
90b3370374 Update V8 to version 3.0 (re-land r5920).
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:31:57 +00:00
kasperl@chromium.org
51b494d096 Revert r5920. Will re-land shortly.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:01:02 +00:00
kasperl@chromium.org
e5860bd6a8 Update V8 to version 3.0.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 09:11:56 +00:00
mikhail.naganov@gmail.com
5a30072502 Fix HeapSnapshotsDiff test, diff implementation, and a bug introduced
during snapshot size optimization.

Sorry, now I figured out that the diff implementation itself was also
incorrect.  Reachable nodes must be filtered from the beginning,
otherwise, an object that is already disconnected, but not discarded
yet, will not appear as a deleted (thankfully, this bug for some
reason had appeared on the x64 port.)

BUG=868
TEST=HeapSnapshotRootPreservedAfterSorting

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-01 07:19:23 +00:00
mikhail.naganov@gmail.com
44050b12b9 Revert last commit due to check fail on Linux.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-30 12:35:03 +00:00
mikhail.naganov@gmail.com
99c276bbbc Fix HeapSnapshotsDiff test and a bug introduced during snapshot size optimization.
The bug wasn't revealed because the test was disabled.

BUG=848
TEST=HeapSnapshotsDiff,HeapSnapshotRootPreservedAfterSorting

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-30 12:24:56 +00:00
sgjesse@chromium.org
be5763fc4d Cleanup the way the debugger stores live registers when entering at a break
The live registers are now only stored to the expression stack with the non pointer values being stored as smis (on the 32-bit platforms these values are assumed to be 31-bit max).

This makes the CEntryStub entry/exit code much simpler, and there is no longer any need for a mode (debug or normal) on it.

Fix a missing live register when breaking at ARM keyed load.
Review URL: http://codereview.chromium.org/3141047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 07:08:03 +00:00