antonm@chromium.org [Wed, 24 Jun 2009 13:09:34 +0000 (13:09 +0000)]
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
lrn@chromium.org [Wed, 24 Jun 2009 12:46:00 +0000 (12:46 +0000)]
Removed static type inference and add a dynamic test for string addition.
The complexity of static type inference never really paid off, and as an
analysis it didn't fit well with codegen frame propagation.
Review URL: http://codereview.chromium.org/146077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2262
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 24 Jun 2009 12:12:17 +0000 (12:12 +0000)]
X64: Implemented LikelySmiBinaryOperation
Review URL: http://codereview.chromium.org/146081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2261
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 24 Jun 2009 11:52:52 +0000 (11:52 +0000)]
A helper function to speed up creation of V8 wrappers for DOM Nodes.
Review URL: http://codereview.chromium.org/141044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2260
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 24 Jun 2009 10:10:49 +0000 (10:10 +0000)]
Changed benchmark html and css files to be almost validating HTML 4.01 and CSS.
Review URL: http://codereview.chromium.org/146076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2259
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 24 Jun 2009 08:56:55 +0000 (08:56 +0000)]
Revert attempt to optimize away the allocation of a temporary.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/147076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2258
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 24 Jun 2009 08:28:42 +0000 (08:28 +0000)]
x64 code generation for construct calls, declaring global variables
and for runtime calls.
We could not handle functions with no explicit return statement. I
added support for that as well. The place was hard to find because
code was left out from the codegenerator with no TODO comment. We
need to make sure to comment if we leave out code when porting
something. :-)
Review URL: http://codereview.chromium.org/146029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2257
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 24 Jun 2009 08:01:38 +0000 (08:01 +0000)]
Allocate arguments object on-demand instead of at function entry.
This allows Function.prototype.apply to not allocate the objects
and copy the arguments directly from the stack.
Review URL: http://codereview.chromium.org/147075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2256
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 23 Jun 2009 11:26:05 +0000 (11:26 +0000)]
X64: Addition binary operation.
Review URL: http://codereview.chromium.org/146022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2255
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 23 Jun 2009 11:11:38 +0000 (11:11 +0000)]
X64 implementation: Read compiler tests from test.js.
Review URL: http://codereview.chromium.org/146024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2254
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Tue, 23 Jun 2009 09:53:18 +0000 (09:53 +0000)]
Introduce an argument that allows to include some data neccessary for displaying collapsed scope variables values in graphical debugger.
When request has 'inlineRefs' option simple type values will be written in the response directly. Variables of other types in addition to 'ref' property containing the value handle will contain some type information.
Review URL: http://codereview.chromium.org/140061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2253
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 23 Jun 2009 09:50:51 +0000 (09:50 +0000)]
X64 implementation: Change argument to relocator to take a 64-bit delta. Change maximum relocation info encoding length.
Review URL: http://codereview.chromium.org/146021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2252
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Tue, 23 Jun 2009 08:07:22 +0000 (08:07 +0000)]
fixrev
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2251
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Tue, 23 Jun 2009 08:07:12 +0000 (08:07 +0000)]
fixlink
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2250
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 23 Jun 2009 07:16:22 +0000 (07:16 +0000)]
Prepare to push V8 version 1.2.9 to trunk.
Review URL: http://codereview.chromium.org/146017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2247
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 23 Jun 2009 06:24:37 +0000 (06:24 +0000)]
Remove unused variable from keyed stores to fix 64-bit release mode.
The variable is used for the inlined version of stores which has not
yet been implemented.
Review URL: http://codereview.chromium.org/146016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2246
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 23 Jun 2009 06:12:14 +0000 (06:12 +0000)]
x64: Generate code for loading from, storing to and calling properties.
Review URL: http://codereview.chromium.org/141056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2245
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 22 Jun 2009 19:25:41 +0000 (19:25 +0000)]
Implement code generation for conditional expressions and regexp
literals. Regexp literals will not really work before we can
bootstrap, but the right code is being called with the right
arguments.
Finish implementation of object literals. We can now call through the
StoreIC_Miss stub into the runtime system to do stores.
Restore comment that I accidentally removed in my last commit.
Review URL: http://codereview.chromium.org/140068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2244
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 22 Jun 2009 18:37:57 +0000 (18:37 +0000)]
Fix non-Intel regexp that needed the number of registers in the
regexp implementation before the regexp had been compiled and the
register count calculated.
Review URL: http://codereview.chromium.org/141047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2243
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 22 Jun 2009 15:19:47 +0000 (15:19 +0000)]
Fix lint issue.
TBR=bak@chromium.org
Review URL: http://codereview.chromium.org/140066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2242
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 22 Jun 2009 15:14:20 +0000 (15:14 +0000)]
Enable code generation for array literals.
Introduce macro assembler support for pushing heap-object handles and
for comparing a register to a heap-object handle.
Cleanup: Remove some code that was needlessly commented out. Added
TODO's for code that was commented out (where we do not hit an
UNIMPLEMENTED).
Review URL: http://codereview.chromium.org/140060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2241
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 22 Jun 2009 14:46:33 +0000 (14:46 +0000)]
X64 implementation: Correct kTargetAddrToReturnAddrDist value for x64.
Review URL: http://codereview.chromium.org/140063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2240
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Mon, 22 Jun 2009 14:29:35 +0000 (14:29 +0000)]
Added descriptor lookup cache to eliminate some search overhead.
Reduced the KeyedLookupCache length to 64.
Review URL: http://codereview.chromium.org/141046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2239
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 22 Jun 2009 14:22:39 +0000 (14:22 +0000)]
X64 implementation: Emit correct merge code for virtual frames at CFG merges.
Review URL: http://codereview.chromium.org/141043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2238
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Mon, 22 Jun 2009 13:14:47 +0000 (13:14 +0000)]
Sending scope types and object refs costs nothing but would save us request that should be send to retrieve scopes informations for each frame in 'backtrace' response.
Review URL: http://codereview.chromium.org/131107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2237
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 22 Jun 2009 12:36:01 +0000 (12:36 +0000)]
Fix bug in static type inference for loops.
Review URL: http://codereview.chromium.org/140058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2236
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 22 Jun 2009 12:29:27 +0000 (12:29 +0000)]
Fix regexp bug reported on iit.edu.
Review URL: http://codereview.chromium.org/141042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2235
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Mon, 22 Jun 2009 11:56:36 +0000 (11:56 +0000)]
After compile event should be sent even if there is a provisional breakpoint out of its lines range.
Review URL: http://codereview.chromium.org/141041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2234
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 22 Jun 2009 11:12:51 +0000 (11:12 +0000)]
Refactor the handling of generations in the compilation cache.
Add generations to the compilation cache for eval and regexp. The number of generations for these are set to two.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/140056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2233
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 22 Jun 2009 10:54:11 +0000 (10:54 +0000)]
X64: Enable lazy compilation and add code generation for simple object
literals.
Review URL: http://codereview.chromium.org/141040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2232
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 22 Jun 2009 08:17:44 +0000 (08:17 +0000)]
X64 implementation: Add high_bit() and low_bits() to register methods.
Review URL: http://codereview.chromium.org/141032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2231
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Mon, 22 Jun 2009 08:09:57 +0000 (08:09 +0000)]
Implemented a ContextSlotCache for compiled code.
Review URL: http://codereview.chromium.org/141038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2230
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 22 Jun 2009 08:08:47 +0000 (08:08 +0000)]
X64 implementation: if-then-else
Review URL: http://codereview.chromium.org/141030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2229
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 22 Jun 2009 07:41:15 +0000 (07:41 +0000)]
Fix issue 386, a bug in JSObject::ReplaceSlowProperty with constant transitions.
Review URL: http://codereview.chromium.org/141031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2228
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 22 Jun 2009 07:22:09 +0000 (07:22 +0000)]
Eliminate double offsetting of line numbers in profiler.
I didn't noticed that in r1481 GetScriptLineNumber was changed to perform line numbers offsetting by itself.
Review URL: http://codereview.chromium.org/131102
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2227
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Sat, 20 Jun 2009 17:57:09 +0000 (17:57 +0000)]
Fix regexp bug reported by Ian where [6-9] would match any digit.
Review URL: http://codereview.chromium.org/140021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2226
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Sat, 20 Jun 2009 12:54:02 +0000 (12:54 +0000)]
Two requested changes to tick processor.
1. If D8_PATH isn't specified, first try to locate 'd8' shell in path,
and if not found, fallback to the one in tools_path/..
2. Add '--nm=<nm_exec>' parameter to specify 'nm' executable to use.
Review URL: http://codereview.chromium.org/132021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2225
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 19 Jun 2009 10:16:52 +0000 (10:16 +0000)]
X64 implementation: Local vars, nested function calls, assignment statements
Review URL: http://codereview.chromium.org/131050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2224
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 19 Jun 2009 09:12:20 +0000 (09:12 +0000)]
Clarify precedence of operations involving bitwise and(&) in x64/assembler.
Review URL: http://codereview.chromium.org/131099
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2223
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 19 Jun 2009 07:36:16 +0000 (07:36 +0000)]
Allow functions to have custom construct stubs that are called
when the function is instantiated.
Review URL: http://codereview.chromium.org/132063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2222
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 19 Jun 2009 07:08:31 +0000 (07:08 +0000)]
Fix 'nm' results parsing in tickprocessor.
Without an explicit check if a function belongs to shared library address space, "finishing" a library symbols processing with 'addPrevEntry(libEnd);' can cause emission of code entries which cover almost the entire address space, shadowing other code.
Review URL: http://codereview.chromium.org/131033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2221
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Thu, 18 Jun 2009 14:06:36 +0000 (14:06 +0000)]
Changed allocation to allow large objects to be allocated in new space.
This avoids back-to-back mark-sweep collections.
Review URL: http://codereview.chromium.org/136001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2219
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 18 Jun 2009 14:04:04 +0000 (14:04 +0000)]
Fixed exception in debugger scripts request.
When collecting the result for a scripts request check that scripts compiled through eval actually have a script for the function they where eval'ed in before adding that informaiton to the response.
BUG=http://crbug.com/14388
TEST=none
Review URL: http://codereview.chromium.org/135001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2218
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 18 Jun 2009 11:46:38 +0000 (11:46 +0000)]
X64 implementation: Add function literals and function calls.
Review URL: http://codereview.chromium.org/131029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2217
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 18 Jun 2009 07:59:13 +0000 (07:59 +0000)]
Implemented processing of compressed log files.
- fixed address delta calculation;
- code creations are also compressed to be in sync with other events;
- factored out a base class from TickProcessor to reuse code in DevTools profiler.
Review URL: http://codereview.chromium.org/125256
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2216
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 18 Jun 2009 07:33:44 +0000 (07:33 +0000)]
Inline mod for integer powers of 2.
Review URL: http://codereview.chromium.org/126293
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2215
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Thu, 18 Jun 2009 05:47:31 +0000 (05:47 +0000)]
Speculative fix for computing Math.pow(2, -1074) on win32 where
the overloaded pow(double, int) function from math.h produces the
wrong answer.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/131022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2214
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Thu, 18 Jun 2009 00:22:52 +0000 (00:22 +0000)]
Make some small Mac-specific modifications to V8 to make it work on MacOS X 10.4
rather than just 10.5 and up.
1: Set the right compile flags and predefines to get backward compatible Unix
system calls.
2: Explicitly weak import the functions in execinfo.h and check at runtime to
see if that library loaded before calling backtrace().
Original change submitted by maf@google.com and reviewed at http://codereview.chromium.org/126241.
Review URL: http://codereview.chromium.org/132002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2213
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 17 Jun 2009 19:26:01 +0000 (19:26 +0000)]
Don't strength reduce divisions by 1 or 2 as they can often be
handled by an optimistic inline idiv.
Review URL: http://codereview.chromium.org/125258
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2212
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 17 Jun 2009 14:14:24 +0000 (14:14 +0000)]
Fix lint error.
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/126276
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2210
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 17 Jun 2009 14:05:00 +0000 (14:05 +0000)]
More debug mode tweaks to mozilla.status.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/125251
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2209
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 17 Jun 2009 13:57:44 +0000 (13:57 +0000)]
Update Mozilla test expectations to better match the new handling
of tests that time out.
Review URL: http://codereview.chromium.org/126274
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2207
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 17 Jun 2009 13:14:51 +0000 (13:14 +0000)]
Fix unload debugger.
Add a missing handle scope when clearing the debug message handler.
BUG=none
TEST=cctest/test-debug/DebuggerUnload
Review URL: http://codereview.chromium.org/126271
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2206
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 17 Jun 2009 12:19:51 +0000 (12:19 +0000)]
Make sure to treat tests that time out as having the
TIMEOUT outcome.
Review URL: http://codereview.chromium.org/125248
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2205
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 17 Jun 2009 12:16:59 +0000 (12:16 +0000)]
X64 Implementation: Make codegen load literals and assign to local variables.
Review URL: http://codereview.chromium.org/126198
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2204
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 17 Jun 2009 11:50:33 +0000 (11:50 +0000)]
X64: Implementation of a bunch of stubs, and some new opcodes.
Review URL: http://codereview.chromium.org/125185
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2203
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 17 Jun 2009 11:44:25 +0000 (11:44 +0000)]
Avoid needless creation of handles in regexp runtime routines and use
the stack instead.
Review URL: http://codereview.chromium.org/126268
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2202
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 17 Jun 2009 11:06:32 +0000 (11:06 +0000)]
Optimize special cases of Math.pow().
Review URL: http://codereview.chromium.org/125245
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2201
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 17 Jun 2009 10:55:58 +0000 (10:55 +0000)]
Inline fast case of the method that ensures that an array has a
certain size.
Review URL: http://codereview.chromium.org/126265
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2200
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 17 Jun 2009 08:27:19 +0000 (08:27 +0000)]
Include weak symbols from 'nm' report. This fixes "C++" part of profiling results.
Review URL: http://codereview.chromium.org/125243
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2199
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 17 Jun 2009 06:47:15 +0000 (06:47 +0000)]
Revert change to LongRunningApply, but allow the test case to time
out for now.
Review URL: http://codereview.chromium.org/125241
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2197
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 17 Jun 2009 06:18:10 +0000 (06:18 +0000)]
Make test-api/ApplyInterruption less likely to time out in debug
mode and on actual ARM hardware.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/125240
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2196
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Wed, 17 Jun 2009 06:07:49 +0000 (06:07 +0000)]
Reimplemented the KeyedLookupCache to speed up access.
Review URL: http://codereview.chromium.org/126262
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2195
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 16 Jun 2009 18:57:26 +0000 (18:57 +0000)]
Fix the problem with JS entries in tickprocessor.
The main problem was due to the following: after Erik had fixed the logger to report library addresses, tickprocessor started to add to the code map entries that covered almost entire memory. This happened because tickprocessor contains a heuristic to bias addresses of functions from dynamic libraries:
if (funcInfo.start < libStart && funcInfo.start < libEnd - libStart) {
funcInfo.start += libStart;
}
And, as tickprocessor tried to process all symbols from the library, including data entries, which can be outside reported library addresses range, the second condition failed, and funcInfo.start remained unbiased.
Review URL: http://codereview.chromium.org/125192
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2194
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 16 Jun 2009 15:01:24 +0000 (15:01 +0000)]
Use >>> instead of >> in order to cover the full 32 bit range when
handling addresses.
Review URL: http://codereview.chromium.org/125187
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2193
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 16 Jun 2009 13:44:48 +0000 (13:44 +0000)]
Don't panic if tickprocessor can't find a shared library.
Don't swallow exceptions so we can't see where they are really
thrown.
Review URL: http://codereview.chromium.org/126200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2192
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Tue, 16 Jun 2009 13:31:31 +0000 (13:31 +0000)]
- Changed fast case for computing object size based on usage histogram.
- Added fast case to String.prototype.split (Mads's idea).
- Made minor other optimizations in String.prototype.split.
Review URL: http://codereview.chromium.org/126201
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2191
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 16 Jun 2009 12:54:07 +0000 (12:54 +0000)]
Add fast negative checks for symbol equality: If we're comparing
two symbols, they're only equal if the objects are identical.
Review URL: http://codereview.chromium.org/125184
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2188
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 16 Jun 2009 12:52:02 +0000 (12:52 +0000)]
Fix profiling for shared libraries on Linux loaded at negative addresses
(Android does this). Fix logging for executable mappings that have no
file associated. Be more consistent with use of uintptr_t.
Review URL: http://codereview.chromium.org/125183
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2187
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 16 Jun 2009 12:08:59 +0000 (12:08 +0000)]
Added utility scripts for running oprofile in tools/oprofile.
To profile running the JavaScript file test.js using the V8 release mode shell (assuming it is build passing prof=oprofile to the SCons build). The following commands can be used:
$ tools/oprofile/start
$ tools/oprofile/run test.js
$ tools/oprofile/report | less
$ tools/oprofile/annotate | less
$ tools/oprofile/shutdown
Here is a summary of the commands.
For all the commands taking an executable the executable is expected to be a binary using V8. If no executable is specified the release mode V8 shell is assumed.
By default the --session-dir=/tmp/oprofv8 is passed to all oprofile commands. This walue can be changed by setting environment variable OPROFILE_SESSION_DIR.
When using the defaulf executable (V8 shell in release mode) it is assumed to be located in ../.. relative from the oprofile utility scripts. This default location can be overridden using the V8_SHELL_DIR environment variable.
start
-----
Start the oprofiling daemon.
run [executable] [parameters]
-----------------------------
Profile a V8 executable. Running this will reset oprofile samples, run the command and do an oprofile dump to flush samples and write ELF binaries for the generated code. The parameters are passed to the executable together with the --oprofile option.
report [executable] [parameters]
--------------------------------
Print the report for a profile run. The parameters are passed to opreport. E.g report --callgraph.
annotate [executable] [parameters]
----------------------------------
Print annotated assembly for a profile run. The parameters are passed to opannotate. E.g annotate -threshold 1.
reset
-----
Reset oprofile samples.
dump
----
Flush oprofile samples and write ELF binaries for the generated code.
shutdown
--------
Shutdown oprofile daemon.
Added a warning which is printed if option --oprofile is passed to a V8 which has not been compiled with oprofile support.
Review URL: http://codereview.chromium.org/125181
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2186
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 16 Jun 2009 11:47:00 +0000 (11:47 +0000)]
Fix issue 380.
Don't infer name for a function if a result of its call is assigned to a variable / property. E.g., in this case:
a = function() { ... } ();
the function must remain anonymous because 'a' doesn't receive a function reference, but instead a result of its call.
BUG=http://code.google.com/p/v8/issues/detail?id=380
TEST=cctest/test-func-name-inference/Issue380
Review URL: http://codereview.chromium.org/126195
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2185
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 16 Jun 2009 10:06:24 +0000 (10:06 +0000)]
Review URL: http://codereview.chromium.org/126158
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2184
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 16 Jun 2009 09:50:37 +0000 (09:50 +0000)]
Remove the unused support for jump-table switch statements.
Review URL: http://codereview.chromium.org/126193
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2183
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 16 Jun 2009 09:49:29 +0000 (09:49 +0000)]
Avoid going into runtime system for round-towards-zero operations on ARM.
Review URL: http://codereview.chromium.org/126192
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2182
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 16 Jun 2009 09:33:17 +0000 (09:33 +0000)]
Prepare to push V8 version 1.2.8 to trunk.
Review URL: http://codereview.chromium.org/125177
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2180
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 16 Jun 2009 08:29:31 +0000 (08:29 +0000)]
Make sure to invoke valueOf methods on both operands of & and >> -- even
when the left operand lets us shortcut the computation.
Review URL: http://codereview.chromium.org/125176
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2179
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 16 Jun 2009 08:25:08 +0000 (08:25 +0000)]
X64 implementation: Test Compiler::Compile by compiling and running a function.
Review URL: http://codereview.chromium.org/126191
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2178
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 16 Jun 2009 08:24:42 +0000 (08:24 +0000)]
X64 platform: Add more register allocator functions.
Review URL: http://codereview.chromium.org/125131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2177
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 16 Jun 2009 06:52:04 +0000 (06:52 +0000)]
Improve DST offset computation performance.
Review URL: http://codereview.chromium.org/126188
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2176
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Tue, 16 Jun 2009 06:44:09 +0000 (06:44 +0000)]
Implemented fast case for NumberToString where the result is a single character string.
Review URL: http://codereview.chromium.org/126189
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2175
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 15 Jun 2009 16:33:28 +0000 (16:33 +0000)]
Fix disassembly output from oprofile.
Only send the inscructions part of a code object to oprofile when reporting dynamically generated code. Before the code object header was also reported to oprofile as code which caused strange disassembly output when using opannotate.
Review URL: http://codereview.chromium.org/125126
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2174
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 15 Jun 2009 15:57:06 +0000 (15:57 +0000)]
Another attempt at fixing sine & cosine test.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/125129
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2173
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 15 Jun 2009 15:49:03 +0000 (15:49 +0000)]
Fixed pointer vs. va_list overloading problem occuring in gcc 3.3 (used for ARM build).
It seems that when calling a method that has two overloaded versions like this:
f(char* format, ...)
f(char* format, va_list args)
with a second pointer argument: f("format", pointer), the second version is picked up.
I've found a description of a similar issue here: http://bugs.gentoo.org/63112
So, to resolve this ambiguity, I've named such LogMessageBuilder's Append functions differently.
Review URL: http://codereview.chromium.org/125125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2172
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 15 Jun 2009 14:27:57 +0000 (14:27 +0000)]
Use the correct version of CallRuntime in the arm code generator.
This fixes assertion failures in debug mode tests.
Review URL: http://codereview.chromium.org/126128
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2171
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 15 Jun 2009 13:50:07 +0000 (13:50 +0000)]
Semirandom changes in the code generated by gcc -g mean we can't iterate quite
as deep on newer VMs in debug mode.
Review URL: http://codereview.chromium.org/126125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2170
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 15 Jun 2009 13:18:51 +0000 (13:18 +0000)]
Modify regression test.
Because of varying floating-point precision, the slow case is hard to
test with explicit values. Instead, we check that sine and cosine do
not return the same value (the regression was that the slow case of
cosine accidentally did sine instead of cosine).
Review URL: http://codereview.chromium.org/126123
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2169
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 15 Jun 2009 13:17:09 +0000 (13:17 +0000)]
Fix stack alignment issue with the new fast Math.random() code
under Mac OS.
Review URL: http://codereview.chromium.org/125123
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2168
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 15 Jun 2009 12:55:48 +0000 (12:55 +0000)]
Two small fixes for the Math.sin and Math.cos optimizations.
Review URL: http://codereview.chromium.org/125122
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2167
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 15 Jun 2009 12:06:48 +0000 (12:06 +0000)]
Optimize Math.sin and Math.cos by avoiding runtime calls.
Review URL: http://codereview.chromium.org/125121
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2166
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 15 Jun 2009 11:44:04 +0000 (11:44 +0000)]
Make young space smaller on ARM.
Review URL: http://codereview.chromium.org/126121
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2165
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 15 Jun 2009 10:27:52 +0000 (10:27 +0000)]
Optimize constant divisions by powers of 2.
Review URL: http://codereview.chromium.org/126116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2164
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 15 Jun 2009 09:49:17 +0000 (09:49 +0000)]
Optimize the slow case implementations of bit operations by
avoiding excessive ToNumber calls and by dealing with NaNs
in BIT_AND and SAR.
Review URL: http://codereview.chromium.org/125118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2163
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 15 Jun 2009 09:37:50 +0000 (09:37 +0000)]
Involve more log compression techniques.
Code addresses are now written as an offset from the previous address for ticks, code move and delete events. Employed backreference and RLE compression for code move and delete events. This gives additional 30% log size reduction for benchmarks run w/o snapshot.
Overall compression results (compared with the revision of V8 having no compression):
- V8: 70% size reduction for benchmarks run w/o snapshot (for reference, gzip gives 87%)
- Chromium: 65% size reduction for public html version of benchmarks (v4) (for reference, gzip gives 90%)
The one obvious opportunity for improving compression results in Chromium is to compress URLs of scripts.
Review URL: http://codereview.chromium.org/125114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2162
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 15 Jun 2009 08:27:38 +0000 (08:27 +0000)]
Avoid sign issues with the fast case code for Math.floor().
Review URL: http://codereview.chromium.org/126115
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2161
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 15 Jun 2009 08:25:08 +0000 (08:25 +0000)]
Fix x64 build.
Review URL: http://codereview.chromium.org/126114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2160
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 15 Jun 2009 08:04:47 +0000 (08:04 +0000)]
Change the implementation of Math.random to use George
Marsaglia's multiply-with-carry instead of mixing the
bits obtained from calling the system random() twice.
This seems to be a bit faster and gives a better
distribution than the system random() in particular on
Windows.
Review URL: http://codereview.chromium.org/126113
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2159
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 15 Jun 2009 06:27:33 +0000 (06:27 +0000)]
Fix memory leak in regexp macro assembler. If the buffer has been
expanded the macro assembler owns the buffer and needs to dispose it
in the destructor.
Review URL: http://codereview.chromium.org/126111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2158
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 12 Jun 2009 14:43:27 +0000 (14:43 +0000)]
Remove branching and binding with two arguments from the JumpTarget
class. Manually manage off-frame results at the two sites where they
were used.
Review URL: http://codereview.chromium.org/125048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2157
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 12 Jun 2009 13:14:35 +0000 (13:14 +0000)]
X64: Call runtime function from JS stack frame.
Review URL: http://codereview.chromium.org/125049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2156
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 12 Jun 2009 12:29:01 +0000 (12:29 +0000)]
X64: Remove restriction on using r12 as index register.
Review URL: http://codereview.chromium.org/126045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2155
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00