jkummerow@chromium.org
28bf8bfc4b
ia32: Redefine register usage in LoadIC/KeyedLoadIC to match StoreIC and KeyedStoreIC
...
Review URL: https://chromiumcodereview.appspot.com/10254005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-27 13:05:45 +00:00
yangguo@chromium.org
03e8d039ca
MIPS: Removed unused variables.
...
These were found by compilation errors with gcc 4.6.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10253004
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-27 12:57:01 +00:00
peter.rybin@gmail.com
569eba39f5
Issue 2081: Expose function's (closure's) inner context in debugger.
...
This is against the correct branch (bleeding_edge).
Review URL: https://chromiumcodereview.appspot.com/10171003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 20:16:53 +00:00
mstarzinger@chromium.org
94e5a8dfcd
Print compare-state with --print-code-stubs.
...
R=vegorov@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10235006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 16:19:14 +00:00
erik.corry@gmail.com
292e007cf3
Remove more assumptions from debug tests. Even though a function
...
is optimized, does not mean all frames on the stack are optimized.
Also, when we ask for the list of scripts we may get more or less
depending on GC timing. Also fixed a presubmit error and made
%GetOptimizationStatus a little more honest.
Review URL: https://chromiumcodereview.appspot.com/10234007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 13:44:18 +00:00
fschneider@chromium.org
f46906d7a8
Reduce size of LIR instruction by one word and remove dead code.
...
Until now we always recorded two deoptimization environments for instructions
that are marked as calls. We actually don't need two for all LIR
instructions except one (LInstanceOfKnownGlobal) where there is a lazy
deoptimization point in deferred code.
This change remove on of them and uses one virtual function instead
to make LInstanceOfKnownGlobal work as before.
Additionally, this change removes an unused predicate save_doubles_ from LIR
instructions and removes some helper functions that are used only in one place.
Review URL: https://chromiumcodereview.appspot.com/10035021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 12:43:00 +00:00
yangguo@chromium.org
657ffd8815
Use simple concat of substrings instead of ReplaceStringBuilder for non-global replacements.
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10134057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 11:43:59 +00:00
ulan@chromium.org
9e55943b64
Add missing literal pool guards.
...
BUG=V8:2095
TEST=see issue
Review URL: https://chromiumcodereview.appspot.com/10233006
Patch from Rodolph Perfetta <rodolph.perfetta@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 11:14:24 +00:00
erik.corry@gmail.com
7783ba5d81
Reenable some heap verification and fix test to keep
...
heap in a consistent state.
Review URL: https://chromiumcodereview.appspot.com/10227002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 09:11:45 +00:00
erik.corry@gmail.com
d511b69e86
Regexp: Remove nodes from the regexp that cannot match because
...
they contain non-ASCII characters and the input string is ASCII.
Remove unused Clone() method.
Review URL: https://chromiumcodereview.appspot.com/10174017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 09:11:19 +00:00
danno@chromium.org
4b920a20ab
Reduce expense of TraceGVN when --trace-gvn is off
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10233004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 09:07:39 +00:00
yangguo@chromium.org
86396a1cba
Prepare push to trunk. Now working on version 3.10.7.
...
R=jkummerow@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10233003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 08:19:17 +00:00
yangguo@chromium.org
c5b9783edb
Remove unused variable in src/platform-solaris.cc.
...
Based on a patch contributed by Heinz Gies <heinz@licenser.net>
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10231004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 07:45:29 +00:00
peter.rybin@gmail.com
53eb3b02e2
Add "step in recommended" to LiveEdit response object.
...
Review URL: https://chromiumcodereview.appspot.com/10185006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 23:06:30 +00:00
danno@chromium.org
b3f6c0b237
Fix 64-bit windows size_t assert
...
R=mstarzinger@chromium.org
TEST=Windows 64 bit build goes green
Review URL: https://chromiumcodereview.appspot.com/10221006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 15:41:57 +00:00
mmassi@chromium.org
93113da5a2
Eliminate redundant array bound checks (checks already performed earlier in the DT).
...
As a special case, for checks on index expressions with the form (expr + constant) if a smaller constant is checked later in the DT also eliminate the check.
Finally, if a larger constant is checked later in the same BB do the more general check (larger constant) earlier instead of the less general one.
This will not cause useless deoptimizations because, since we are in the same BB, all the checks would have been executed anyway.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10032029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 14:32:27 +00:00
mstarzinger@chromium.org
21fc0fef6a
Fix deopted construct stub frame to contain code object.
...
R=danno@chromium.org
BUG=chromium:124594
TEST=mjsunit/regress/regress-124594
Review URL: https://chromiumcodereview.appspot.com/10155024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 13:22:04 +00:00
erik.corry@gmail.com
810693a737
Temporarily disable some heap verification while test failures are
...
investigated.
Review URL: https://chromiumcodereview.appspot.com/10221004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 13:12:08 +00:00
danno@chromium.org
a1a4a1cf2f
Use safe string utilities to fix Windows build error.
...
R=mstarzinger@chromium.org
TEST=waterfall goes green
Review URL: https://chromiumcodereview.appspot.com/10173023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 13:12:00 +00:00
danno@chromium.org
39fa51d452
Improve --trace-gvn debug output
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10203010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 12:04:23 +00:00
erik.corry@gmail.com
13c4191d62
Fix release build. Add comment accidentally omitted from
...
preceeding change (stress-compaction).
Review URL: https://chromiumcodereview.appspot.com/10161027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 11:49:31 +00:00
erik.corry@gmail.com
f6f954484c
Make --stress-compaction more stressful.
...
Review URL: https://chromiumcodereview.appspot.com/10141007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 11:35:32 +00:00
alexeif@chromium.org
f7f81c4651
Add field names to Code, ConsString, and JSGlobalPropertyCell in heap snapshot.
...
Review URL: https://chromiumcodereview.appspot.com/10217001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 10:20:38 +00:00
mstarzinger@chromium.org
6aeed46180
Make String::Empty inlineable.
...
R=svenpanne@chromium.org
TEST=cctest/test-api/StringEmpty
Review URL: https://chromiumcodereview.appspot.com/10199019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 08:45:45 +00:00
fschneider@chromium.org
e07be0b068
Attempt to fix Win32 build by avoiding a compiler intrinsic.
...
TBR=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10198020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 16:37:43 +00:00
fschneider@chromium.org
6e713a269d
Optimise Math.floor(x/y) to use integer division for specific divisor.
...
Landing for Rodolph Perfetta <rodolph.perfetta@gmail.com>.
Original CL: http://codereview.chromium.org/9638018/
Review URL: https://chromiumcodereview.appspot.com/10197010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 15:59:07 +00:00
mstarzinger@chromium.org
c25a92d76b
Make Isolate::GetData and Isolate::SetData inlineable.
...
R=svenpanne@chromium.org
TEST=cctest/test-api/IsolateEmbedderData
Review URL: https://chromiumcodereview.appspot.com/10196013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 14:37:53 +00:00
ulan@chromium.org
a139e38c0b
Re-enable optimization for hot functions that have optimization disabled due to many deopts.
...
Use exponential backoff in order to avoid getting into optimization-deoptimization cycle.
BUG=v8:2040,121196
Review URL: https://chromiumcodereview.appspot.com/10202007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 14:05:07 +00:00
alexeif@chromium.org
20e6446bd2
Refactoring of heap profiler: split ExtractReferences into several functions.
...
Review URL: https://chromiumcodereview.appspot.com/10198011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 12:38:58 +00:00
erik.corry@gmail.com
83cbc638dc
Remove some unused stuff from regexp implementation.
...
Review URL: https://chromiumcodereview.appspot.com/10205010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 09:34:13 +00:00
erik.corry@gmail.com
c436c70f8b
Fix some bugs in accessing details of the lastest regexp
...
match. Sometimes were were not updating it when we should
and sometimes we were leaving the lastMatchInfoOverride in
place when we should be using the updated regular last match
info. Small optimization for zero length match in
String.prototype.replace.
Review URL: https://chromiumcodereview.appspot.com/10184004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 18:56:07 +00:00
fschneider@chromium.org
09657d94eb
Revert r11420 because Win32 compilation was broken.
...
TBR=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10190007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 18:12:36 +00:00
fschneider@chromium.org
2957c20926
optimise Math.floor(x/y) to use integer divisiion for specific divisor.
...
BUG=none
TEST=mjsunit/math-floor-of-div.js
Landing for Rodolph Perfetta <rodolph.perfetta@gmail.com>.
Review URL: https://chromiumcodereview.appspot.com/9638018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 17:44:21 +00:00
mstarzinger@chromium.org
7b459a27d7
Fix compile failure on Mac in r11417.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10187003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 16:42:34 +00:00
alexeif@chromium.org
ba6500b018
Show names of the context fields in heap snapshot.
...
Review URL: https://chromiumcodereview.appspot.com/10183005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 16:10:35 +00:00
mstarzinger@chromium.org
5113cc1bbc
Make static API getters inlineable again.
...
This relands r11376 with minor fixes for Windows where offsets are
slightly different from Linux for unaligned fields.
R=svenpanne@chromium.org
TEST=cctest/test-api/StaticGetters
Review URL: https://chromiumcodereview.appspot.com/10176004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 15:09:59 +00:00
mstarzinger@chromium.org
e3be59512a
Fix source property of empty RegExp objects.
...
R=rossberg@chromium.org
BUG=v8:1982
TEST=test262/15.10.4.1-5
Review URL: https://chromiumcodereview.appspot.com/10134010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 13:59:43 +00:00
erikcorry
7d4b983f55
Remove unused IsNan function
...
Review URL: http://codereview.chromium.org/10167008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 13:44:06 +00:00
mstarzinger@chromium.org
709aad075e
Prepare push to trunk. Now working on version 3.10.6.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10187001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 12:54:47 +00:00
alexeif@chromium.org
e0e2c442a4
Exclude filler maps from object properties in heap snapshot.
...
Review URL: https://chromiumcodereview.appspot.com/10167013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 10:12:29 +00:00
alexeif@chromium.org
5596ef3b67
Add names to GlobalObject inline properties in heap snapshot.
...
Review URL: https://chromiumcodereview.appspot.com/10166007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 10:08:07 +00:00
peter.rybin@gmail.com
3d45d48fb2
Issue 2089 Expose value wrapper's inner values
...
Review URL: https://chromiumcodereview.appspot.com/10162006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 17:08:01 +00:00
yangguo@chromium.org
717dbba694
Disabling stepping into callback function of String.replace.
...
This is being done due to performance concerns.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10134006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 15:20:52 +00:00
erikcorry
9fda0c19c3
MIPS: Do the qNaN fixup at de-serialization time. This is a commit of https://chromiumcodereview.appspot.com/10093007/ for Paul Lind
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 14:12:49 +00:00
alexeif@chromium.org
d9f797b404
Eliminate internal and hidden links to oddballs and other non-essential objects in heap snapshot.
...
Review URL: https://chromiumcodereview.appspot.com/10162005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 14:03:06 +00:00
alexeif@chromium.org
d97aa5f51f
Add missing named fields to SharedFunctionInfo in heap snapshot.
...
Review URL: https://chromiumcodereview.appspot.com/10169007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 13:57:13 +00:00
rossberg@chromium.org
c8aea7a184
Put new global var semantics behind a flag until WebKit tests are cleaned up.
...
R=mstarzinger@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10163003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 13:35:09 +00:00
mstarzinger@chromium.org
29f0463536
MIPS: Port function call type-feedback cells to x64 and ARM.
...
Port r11391 (789b1078)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10124013
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 12:51:08 +00:00
fschneider@chromium.org
91ccfce2d9
Remove dead code from our JS builtin-code in math.js.
...
$random is never used within our JS builtin code.
Review URL: https://chromiumcodereview.appspot.com/10166003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 11:24:16 +00:00
yangguo@chromium.org
f516037a6f
Enable stepping into callback passed to builtins (e.g. Array.forEach).
...
BUG=109564
TEST=
Review URL: https://chromiumcodereview.appspot.com/10078014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 11:06:12 +00:00
svenpanne@chromium.org
cac8bbff6e
Replaced the --limit-inling flag by three separate flags and bumped hard limits.
...
This change makes experiments with inlining limits much easier. Note that the
default values for the limits keep their old values for now. Renamed things a
bit for more consistency.
Review URL: https://chromiumcodereview.appspot.com/10162001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 10:42:12 +00:00
fschneider@chromium.org
3760893edd
Fix bug in forced-deletion of globals.
...
When inling functions across contexts in optimized code and using
ForceDelete from the API to delete a DontDelete global property we
can end up returning the hole value instead of throwing a ReferenceError
as expected after accessing a deleted global variable.
BUG=v8:2092
TEST=test/cctest/test-api/InlinedFunctionAcrossContexts
Review URL: https://chromiumcodereview.appspot.com/10035060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 10:21:08 +00:00
svenpanne@chromium.org
a0d67fd9b0
Flush PC-to-code cache before doing verification.
...
Review URL: https://chromiumcodereview.appspot.com/10144002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 09:37:06 +00:00
fschneider@chromium.org
cadf058618
Finish refactoring done for ia32 for the other platforms.
...
Make non-templatized versions of LIR printing functions.
This avoid duplicating the code for each template instance.
BUG=v8:1803
Review URL: https://chromiumcodereview.appspot.com/10123011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 16:49:09 +00:00
alexeif@chromium.org
72a9e445e5
Show names for the strong roots in heap snapshot.
...
Review URL: https://chromiumcodereview.appspot.com/10128006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 15:58:42 +00:00
mstarzinger@chromium.org
60863e5cd6
Port function call type-feedback cells to x64 and ARM.
...
R=fschneider@chromium.org
BUG=v8:1857,v8:2079
Review URL: https://chromiumcodereview.appspot.com/10124008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 14:17:12 +00:00
fschneider@chromium.org
0556f87851
Optimize ~~(expr) in optimized code.
...
~~ is commonly used to truncate a value to int32 (ToInt32).
This change avoid actually emitting the bitwise operations, and
just truncates the subexpression of ~~.
BUG=v8:2037
TEST=test/mjsunit/compiler/optimize-bitnot.js
Review URL: https://chromiumcodereview.appspot.com/10123007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 13:24:15 +00:00
alexeif@chromium.org
988ea77bed
Hide internal references pointing to the empty array in heap profiler.
...
Review URL: https://chromiumcodereview.appspot.com/10021052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 12:16:37 +00:00
svenpanne@chromium.org
dfd54da6b1
Prepare push to trunk. Now working on version 3.10.5.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10070008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 11:59:52 +00:00
mstarzinger@chromium.org
7d22d73ebf
Fix issues when stressing compaction with WeakMaps.
...
1) While marking the backing hash table of a WeakMap we also need to
record the slot because it might be on an evacuation candidate.
2) With incremental marking one backing hash table might be marked more
than once because the WeakMap might have gone through a white to gray
transition.
3) The corner case when the allocation of the backing hash table itself
causes a GC, leads to a WeakMap with an undefined table field, so we
still need to handle this case correctly.
R=vegorov@chromium.org
TEST=mjsunit/harmony/proxies-example-membrane --stress-compaction
Review URL: https://chromiumcodereview.appspot.com/9985010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 10:32:38 +00:00
svenpanne@chromium.org
f5caf3a77b
Fix mod on ia32 without SSE2.
...
Review URL: https://chromiumcodereview.appspot.com/10128004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 10:28:17 +00:00
mstarzinger@chromium.org
57739100f3
Fix missing GVN flag for new-space promotion.
...
R=vegorov@chromium.org
BUG=chromium:123919
TEST=mjsunit/regress/regress-123919
Review URL: https://chromiumcodereview.appspot.com/10119016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 07:49:11 +00:00
svenpanne@chromium.org
73814e7500
Fixed type transitions for mod on ia32.
...
Previously we got stuck in the int32 state, because this handled everything
without a type transition. Note that other platforms do not have this bug.
Review URL: https://chromiumcodereview.appspot.com/10083044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 07:19:33 +00:00
mstarzinger@chromium.org
0f590eb45f
Revert r11376 and r11379 due to compile failures on Windows.
...
TBR=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10116030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 17:49:53 +00:00
alexeif@chromium.org
70918cb8a9
Always show link to prototype transitions in heap snapshot.
...
... otherwise it is shown as a hidden reference with a meaningless name.
Review URL: https://chromiumcodereview.appspot.com/10041028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 17:02:57 +00:00
mstarzinger@chromium.org
3b3e701a27
Make static API getters inlineable.
...
R=danno@chromium.org
TEST=cctest/test-api/StaticGetters[AfterDeath]
Review URL: https://chromiumcodereview.appspot.com/10116024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 16:07:08 +00:00
mstarzinger@chromium.org
a13e41f328
Make Value::IsUndefined and Value::IsNull inlineable.
...
R=danno@chromium.org
TEST=cctest/test-api
Review URL: https://chromiumcodereview.appspot.com/10091035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 15:51:34 +00:00
rossberg@chromium.org
977b602727
MIPS: Implement rudimentary module linking.
...
Port r11336 (6dd4e844)
Original commit message:
Implement rudimentary module linking.
Constructs the (generally cyclic) graph of module instance objects
and populates their exports. Any exports other than nested modules
are currently set to 'undefined' (but already present as properties).
Details:
- Added new type JSModule for instance objects: a JSObject carrying a context.
- Statically allocate instance objects for all module literals (in parser 8-}).
- Extend interfaces to record and unify concrete instance objects,
and to support iteration over members.
- Introduce new runtime function for pushing module contexts.
- Generate code for allocating, initializing, and setting module contexts,
and for populating instance objects from module literals.
Currently, all non-module exports are still initialized with 'undefined'.
- Module aliases are resolved statically, so no special code is required.
- Make sure that code containing module constructs is never optimized
(macrofy AST node construction flag setting while we're at it).
- Add test case checking linkage.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10035028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 15:48:01 +00:00
rossberg@chromium.org
1aa16d8689
MIPS: Refactor code generation for global declarations.
...
Port r11332 (0e6df8b6)
Original commit message:
Refactor code generation for global declarations.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10041029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 15:46:08 +00:00
rossberg@chromium.org
42b77f3156
MIPS: Refactoring of code generation for declarations, in preparation for modules.
...
Port r11331 (bd7843a0)
Original commit message:
Refactoring of code generation for declarations, in preparation for modules.
Do proper dispatch on declaration type instead of mingling together
different code generation paths. Once we add more declaration forms,
this is more scalable.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10119017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 15:43:29 +00:00
svenpanne@chromium.org
18af012b74
Make functions with switch statements inlinable.
...
Review URL: https://chromiumcodereview.appspot.com/10083038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 11:58:13 +00:00
yangguo@chromium.org
7f30cf119d
MIPS: Make SubStringStub more robust with unsafe arguments.
...
Port r11349 (5b381a).
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10107025
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 11:17:04 +00:00
vegorov@chromium.org
bf2bc0b1db
MIPS: Skip canonicalization check in LStoreKeyedFastDoubleElement when it is not needed
...
Port r11278 (e5dc7ebd).
Original commit message:
Skip canonicalization check in LStoreKeyedFastDoubleElement when it is not needed:
- if value is a result of integer32 to double conversion (can't be NaN);
- if value was loaded from fast double backing store (already canonicalized).
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10071004
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 10:42:30 +00:00
vegorov@chromium.org
b635c90792
MIPS: fix-up after r11344
...
Removed a constant now duplicated by r11344 (7c41cf72).
This fixes compilation on MIPS (with the other submitted patches applied).
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10108023
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 10:39:30 +00:00
vegorov@chromium.org
fd9bd722bc
Simplify invocation sequence at monomorphic function invocation sites.
...
Provide known target as a hint to HInvokeFunction instruction so that it can statically determine if arguments adaptation is required.
R=fschneider@chromium.org
BUG=v8:2079
Review URL: https://chromiumcodereview.appspot.com/10116021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 09:38:45 +00:00
yangguo@chromium.org
5713859c99
Fix typo in power_double_double
...
Contributed by net147@gmail.com
BUGS=
TEST=mjsunit/math-pow,mjsunit/math-sqrt
Review URL: https://chromiumcodereview.appspot.com/10116001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 07:02:21 +00:00
yangguo@chromium.org
661edb44de
Fix incorrect Math.pow() calculations on MinGW-w64.
...
Original patch by Jonathan Liu <net147@gmail.com> https://chromiumcodereview.appspot.com/10026017/
BUG=
TEST=mjsunit/math-pow,mjsunit/math-sqrt
Review URL: https://chromiumcodereview.appspot.com/10108022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 16:15:20 +00:00
jkummerow@chromium.org
6339bcb331
Fix typo in lazy-instance.h.
...
There was no build error since we never used LazyDynamicInstance's default parameter.
BUG=v8:2091
Review URL: https://chromiumcodereview.appspot.com/10103032
Patch from Philippe Liard <pliard@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 16:02:36 +00:00
alexeif@chromium.org
2ec3e5943b
Remove Debug object from the user roots in heap profiler.
...
Review URL: https://chromiumcodereview.appspot.com/10096016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 15:57:35 +00:00
yangguo@chromium.org
bf630e2371
Fix MinGW-w64 GCC 4.7 compilation
...
Contributed by net147@gmail.com
BUGS=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10019012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 14:53:06 +00:00
yangguo@chromium.org
ac72f5c441
Use ldexp instead of pow for more accuracy.
...
Original patch by net147@gmail.com: https://chromiumcodereview.appspot.com/10026011/
BUG=
TEST=cctest/test-conversions/Octal
Review URL: https://chromiumcodereview.appspot.com/10103030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 13:16:25 +00:00
loislo@chromium.org
b2024c531c
Push heap stats as HeapStatsUpdate struct instead of raw array of uint32_t values.
...
We are pushing stats data as a raw array of uint32_t values at the moment.
It makes tricky the process of updating the API between v8 and WebKit.
BUG=none
TEST=HeapSnapshotObjectsStats
Review URL: https://chromiumcodereview.appspot.com/10110001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 13:10:17 +00:00
erik.corry@gmail.com
78e4e76cc4
Prepare push to trunk. We are now working on 3.10.4.
...
Review URL: https://chromiumcodereview.appspot.com/10107013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 11:21:16 +00:00
loislo@chromium.org
23602bb8b2
Embed entries_ list into HeapObjectsMap by value.
...
Previously it was owned by pointer but now it is not necessary and we can own it by value.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9969197
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 11:14:14 +00:00
mstarzinger@chromium.org
47d07b8a7b
Fix fast array literals to ignore prototype chain.
...
This makes sure that boilerplate objects for array literals with
non-constant elements (which will contain the hole at non-constant
positions) will not cause prototype chain lookups when generating
optimized code.
R=erik.corry@gmail.com
BUG=chromium:123512
TEST=mjsunit/regress/regress-123512
Review URL: https://chromiumcodereview.appspot.com/10105025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 11:12:37 +00:00
yangguo@chromium.org
47c4a5b4ef
Make SubStringStub more robust wrt unsafe arguments.
...
BUG=
TEST=test-strings/RobustSubStringStub
Review URL: https://chromiumcodereview.appspot.com/9969196
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 10:49:15 +00:00
kmillikin@chromium.org
174967d867
Fix a bug in heap profile tracing of closures.
...
The heap profile tracers assumed that a closure always closed over a
function context. This is obviously not true (e.g., function expressions
nested inside catch or with). This assumption could lead to using a
function's scope info to interpret a catch or with context.
R=vegorov@chromium.org
BUG=v8:2078
TEST=
Review URL: https://chromiumcodereview.appspot.com/9969198
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 10:42:17 +00:00
vegorov@chromium.org
870eba4c65
Process weak references between optimized JSFunctions on scavenges.
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10091027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 10:37:41 +00:00
yurys@chromium.org
4f5d3361a2
Remove extra whitespace added in r11339
...
TBR=mnaganov
Review URL: https://chromiumcodereview.appspot.com/9956167
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 08:59:43 +00:00
erik.corry@gmail.com
6a1b70ccbc
Regexp: Unify the lookahead code for the BoyerMoore-like skipping
...
and the lookahead code for simplifying \b. Also cache lookahead
results on the nodes, fix a memory leak and remove some character
class code we are no longer using.
Review URL: https://chromiumcodereview.appspot.com/9961009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 08:06:53 +00:00
vegorov@chromium.org
2d757afab6
Try aligning unboxed double array backing store in allocation or scavenge promotion.
...
This CL does not align them during compaction or mark-sweep promotion because we are not using specialized evacuation visitors.
R=erik.corry@gmail.com
Review URL: https://chromiumcodereview.appspot.com/10001012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 07:52:39 +00:00
svenpanne@chromium.org
999fb73bc6
Tiny DescriptorArray cleanup.
...
Removed 2 useless functions, nuked a simple helper function with a single caller, and simplified things by changing a signature.
Review URL: https://chromiumcodereview.appspot.com/10066046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 07:16:19 +00:00
mstarzinger@chromium.org
f7cd1e41f8
Fix illegal escape-sequences to throw syntax errors.
...
R=erik.corry@gmail.com
TEST=test262/S7.8.4_A6.*,test262/S7.8.4_A7.*
Review URL: https://chromiumcodereview.appspot.com/9490006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 15:54:02 +00:00
yurys@chromium.org
1ce7d5d0d4
Add method for resolving SnapshotObjectId by given object
...
Review URL: https://chromiumcodereview.appspot.com/10094011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 15:36:19 +00:00
rossberg@chromium.org
ab26fb6b21
Implement rudimentary module linking.
...
Constructs the (generally cyclic) graph of module instance objects
and populates their exports. Any exports other than nested modules
are currently set to 'undefined' (but already present as properties).
Details:
- Added new type JSModule for instance objects: a JSObject carrying a context.
- Statically allocate instance objects for all module literals (in parser 8-}).
- Extend interfaces to record and unify concrete instance objects,
and to support iteration over members.
- Introduce new runtime function for pushing module contexts.
- Generate code for allocating, initializing, and setting module contexts,
and for populating instance objects from module literals.
Currently, all non-module exports are still initialized with 'undefined'.
- Module aliases are resolved statically, so no special code is required.
- Make sure that code containing module constructs is never optimized
(macrofy AST node construction flag setting while we're at it).
- Add test case checking linkage.
Baseline: http://codereview.chromium.org/9722043/
R=svenpanne@chromium.org ,mstarzinger@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9844002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 14:43:27 +00:00
alexeif@chromium.org
f4c15c4ec2
External references should not affect dominance relation.
...
Separate objects into two groups: reachable from a window (user),
and unreachable (system). Then do not take into account links
that come from system group to the user group when calculating
dominance relation.
Review URL: https://chromiumcodereview.appspot.com/10086006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 14:31:13 +00:00
rossberg@chromium.org
62945585fd
Implement ES5 erratum: global declarations shadow inherited properties.
...
I also discovered that our treatment of const declarations is inconsistent
when inside a global eval under 'with' (i.e., when created by
DeclareContextSlots). That is,
var x;
eval("const x = 9")
and
var x;
eval("with({}) const x = 9")
differ (the former assigns 9, the latter throws). This appears to be an
oversight from earlier changes to our const semantics (the latter shouldn't
throw either). Fixing this is a separate issue, though (and one that doesn't
seem quite worthwhile).
R=mstarzinger@chromium.org
BUG=v8:1991,80591
TEST=
Review URL: https://chromiumcodereview.appspot.com/10067010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 13:20:50 +00:00
rossberg@chromium.org
ed68932861
Refactor code generation for global declarations.
...
(Baseline is http://codereview.chromium.org/9704054/ )
R=fschneider@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9722043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 12:26:16 +00:00
rossberg@chromium.org
43a52c4cee
Refactoring of code generation for declarations, in preparation for modules.
...
Do proper dispatch on declaration type instead of mingling together
different code generation paths. Once we add more declaration forms,
this is more scalable.
In separate steps, I'd like to (1) clean up the logic for DeclareGlobal,
and (2) try to reduce the special handling of the name function var if
possible.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9704054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 11:48:20 +00:00
svenpanne@chromium.org
ef29accd6f
Improved printing of HBitwise instructions.
...
Review URL: https://chromiumcodereview.appspot.com/9972007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 11:38:01 +00:00
mstarzinger@chromium.org
875a57e658
Add PushAddress(ExternalReference) for X64.
...
R=erik.corry@gmail.com
Review URL: https://chromiumcodereview.appspot.com/10081009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 10:53:26 +00:00
ulan@chromium.org
44516ce7d7
Provide structures from <ucontext.h> for Android.
...
Patch from Ben Murdoch <benm@chromium.org>.
Review URL: https://chromiumcodereview.appspot.com/10001005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 10:42:39 +00:00
loislo@chromium.org
17632e447c
Add size metric into Heap Stats.
...
The stats data have only count field at the moment.
A constantly growing array of integers also can be a reason of a leak.
Ans we have to have a way to detect such kind of leaks.
Drive by fix:
FindObject and AddEntry were replaced with FindEntry/FindOrAddEntry pair.
BUG=none
TEST=HeapSnapshotObjectsStats
Review URL: https://chromiumcodereview.appspot.com/10086004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 09:44:42 +00:00
ulan@chromium.org
267879e92c
Fix fast API call for MinGW-w64
...
MinGW-w64 uses the rcx register for the first argument. Unlike MSVC, it does not require preparing a slot for the result handle on the stack and putting a pointer to it in the rcx register.
BUGS=v8:2026
TEST=cctest/test-api
Review URL: https://chromiumcodereview.appspot.com/9959050
Patch from Jonathan Liu <net147@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 09:22:12 +00:00
mstarzinger@chromium.org
a918cd92af
Fix handling of this in Array.prototype.concat method.
...
R=jkummerow@chromium.org
BUG=v8:2080
TEST=test262/15.4.4.4-5-c-i-1
Review URL: https://chromiumcodereview.appspot.com/10095006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 08:12:12 +00:00
svenpanne@chromium.org
b1e95913a0
Valgrind cleanliness, part 6: Introduce OS::TearDown, cleaning up 2 mutexes.
...
Review URL: https://chromiumcodereview.appspot.com/10084003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 14:08:31 +00:00
mstarzinger@chromium.org
f07b21337b
MIPS: Add isolate accessor to AccessorInfo and Arguments.
...
Port r11306 (36b58f7).
Original commit message:
This passes the isolate through to API callback functions so that it is
available through AccessorInfo and Arguments. This allows bindings to
avoid unnecessary TLS lookups to retrieve the current isolate.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10083001
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 13:43:19 +00:00
fschneider@chromium.org
037785baaa
MIPS: Improve performance of keyed loads/stores which have a HeapNumber index.
...
Port r11282 (bd2ab07).
Patch by Daniel Kalmar.
Original commit message:
Some GWT compiled code results in array access that has a heap number (e.g. -0)
as an index. Until now this would result in a generic IC.
For example:
a[-0] === a[0] or
a[0.25 * 4] === a[1]
This change detects heap numbers that are representable as a smi
and converts them. As a result we can still use the fast keyed monomorphic
ICs. Optimized code already handles keyed access with a double-key efficiently.
As a result the frame rate on the reported benchmark improves by roughly 2x.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10068012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 13:04:51 +00:00
alexeif@chromium.org
48777a7f5b
Split nodes and edges into separate arrays in heap snapshot serialization.
...
Review URL: https://chromiumcodereview.appspot.com/10037004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 12:50:48 +00:00
erik.corry@gmail.com
5d164e4c7c
MIPS: Implement CheckNotCharacterAfterMinusAnd. This is a commit of http://codereview.chromium.org/9721011/ for Daniel Kalmar
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 11:47:31 +00:00
mstarzinger@chromium.org
0803c4dfbf
Fix r11306 to use external references on X64.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10079004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 11:25:13 +00:00
erik.corry@gmail.com
b32ff09a49
Regexp.rightContext was still not quite right. Fixed and
...
added more tests.
Review URL: https://chromiumcodereview.appspot.com/10008104
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 11:03:22 +00:00
mstarzinger@chromium.org
20777bf0c5
Fix several ancient presubmit failures.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10038046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 09:58:29 +00:00
jkummerow@chromium.org
688e795314
Prepare push to trunk. Now working on version 3.10.3.
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10071039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 09:44:33 +00:00
mstarzinger@chromium.org
2f732c2728
Add isolate accessor to AccessorInfo and Arguments.
...
This passes the isolate through to API callback functions so that it is
available through AccessorInfo and Arguments. This allows bindings to
avoid unnecessary TLS lookups to retrieve the current isolate.
R=danno@chromium.org
TEST=cctest/test-api,cctest/test-accessors
Review URL: https://chromiumcodereview.appspot.com/10069050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 09:38:00 +00:00
svenpanne@chromium.org
436098b4a2
Prepare DefinePropertyAccessor for callback transitions.
...
Although things are currently OK here, in the future it won't be enough to check
for the existence of a CALLBACKS result, we must additionally check that it
actually contains an accessor. In a nutshell: 'sed s/IsFound/IsProperty/' once
again...
Additionally, the control flow in DefinePropertyAccessor has been simplified by
using a helper function.
Review URL: https://chromiumcodereview.appspot.com/10071009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 09:35:18 +00:00
jkummerow@chromium.org
18a24a5882
MIPS: Increase external array allocation header size to 8 bytes.
...
This fixes alignment issues on MIPS HW, found for example in mjsunit external-array.
The issue originates from r11144 (86563c3e21) which adds a 4-byte header to these arrays.
This causes problems on MIPS, where certain pointers need to be 8-byte aligned.
BUG=
TEST=mjsunit/external-array
Review URL: https://chromiumcodereview.appspot.com/9956049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 09:00:02 +00:00
loislo@chromium.org
d1f83dd95a
This patch is introducing a way to grab heap stats.
...
The idea is to monitor the heap regulary and track each object in the heap.
With this data we will be able do draw heap usage diagram.
Where X is time and Y is the number of objects.
BUG=none
TEST=HeapSnapshotObjectsStats
Review URL: https://chromiumcodereview.appspot.com/10049002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 08:52:25 +00:00
jkummerow@chromium.org
0070d4dfd7
Fix native ARM build
...
BUG=v8:1744, v8:539
Review URL: https://chromiumcodereview.appspot.com/10008082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 07:59:09 +00:00
vegorov@chromium.org
ec4c772746
Return LOOKUP variable instead of CONTEXT for non-context allocated outer scope parameters.
...
R=kmillikin@chromium.org
BUG=chromium:119609
TEST=test/mjsunit/regress/regress-119609.js
Review URL: https://chromiumcodereview.appspot.com/10010046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 19:32:29 +00:00
jkummerow@chromium.org
14e181709b
Fix regular and ElementsKind transitions interfering with each other
...
R=danno@chromium.org
BUG=122271
TEST=mjsunit/regress/regress-crbug-122271
Review URL: https://chromiumcodereview.appspot.com/10038010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 12:30:32 +00:00
erikcorry
32f16418ea
Regexp: Fix rightContext in the lastMatchInfoOverride
...
case.
Review URL: http://codereview.chromium.org/10068010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 12:13:18 +00:00
mstarzinger@chromium.org
40895f0250
Cleanup test-alloc unit test case.
...
This makes the test-alloc test case more robust against changes to the
initial heap size. It correctly simulates a full space now instead of
trying to fill the space up by allocating filler objects.
R=svenpanne@chromium.org
TEST=cctest/test-alloc
Review URL: https://chromiumcodereview.appspot.com/10071003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 10:06:32 +00:00
erik.corry@gmail.com
e9e291c331
MIPS: NaNs in the snapshot should be quiet according
...
to the MIPS FPU even when cross-building the snapshot.
This is based on code from Daniel Kalmar from
http://codereview.chromium.org/9910029/
Review URL: https://chromiumcodereview.appspot.com/10068006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 09:23:26 +00:00
fschneider@chromium.org
71702e1da3
Improve performance of keyed loads/stores which have a HeapNumber index.
...
Some GWT compiled code results in array access that has a heap number (e.g. -0)
as an index. Until now this would result in a generic IC.
For example:
a[-0] === a[0] or
a[0.25 * 4] === a[1]
This change detects heap numbers that are representable as a smi
and converts them. As a result we can still use the fast keyed monomorphic
ICs. Optimized code already handles keyed access with a double-key efficiently.
As a result the frame rate on the reported benchmark improves by roughly 2x.
BUG=v8:1388,v8:1295
Review URL: https://chromiumcodereview.appspot.com/9837109
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 08:35:30 +00:00
erik.corry@gmail.com
de169b7d43
Port regexp microoptimizations to MIPS. Also fix some formatting. This includes http://codereview.chromium.org/9965107/ from Daniel Kalmar
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 07:45:25 +00:00
mstarzinger@chromium.org
6276295e28
Fix WeakMap processing for evacuation candidates (2).
...
This fixes processing of WeakMaps so that keys on evacuation candidates
which are also reachable by other strong paths are correctly recorded in
the slots buffer.
Also backing stores that reside in the large-object-space now use the
correct anchor slot.
R=vegorov@chromium.org
BUG=v8:2060
TEST=cctest/test-weakmaps/Regress2060b
Review URL: https://chromiumcodereview.appspot.com/10034018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 15:32:31 +00:00
vegorov@chromium.org
8bdbfc02e7
Skip canonicalization check in LStoreKeyedFastDoubleElement when it is not needed:
...
- if value is a result of integer32 to double conversion (can't be NaN);
- if value was loaded from fast double backing store (already canonicalized).
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10054009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11278 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 14:08:11 +00:00
vegorov@chromium.org
983d521fe9
Reland arguments access support for inlined functions (r11109,r11118).
...
When pushing arguments use correct initial values instead of fetching them from the environment which can be modified.
R=fschneider@chromium.org
TEST=test/mjsunit/compiler/inline-arguments.js
Review URL: https://chromiumcodereview.appspot.com/10033028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 13:40:55 +00:00
mstarzinger@chromium.org
a9c664419e
Fix presubmit error in r11270.
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10053011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 11:45:14 +00:00
mstarzinger@chromium.org
82cde7c832
Remove write-barriers for stores to new-space objects.
...
This change allows hydrogen instructions to keep track of instructions
that dominate certain side-effects (GVN flags) in the hydrogen graph. We
use the GVN pass to keep track of side-effects because accurate flags
are already in place.
It also adds a new side-effect (kChangesNewSpacePromotion) indicating
whether an instruction can cause a GC and have objects be promoted to
old-space. An object allocated in new-space is sure to stay on paths not
having said side-effect.
R=erik.corry@gmail.com
TEST=mjsunit/compiler/inline-construct
Review URL: https://chromiumcodereview.appspot.com/10031031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 10:56:16 +00:00
erik.corry@gmail.com
0cdf6b50e7
Fix compile errors on 64 bit platforms.
...
Review URL: https://chromiumcodereview.appspot.com/10053009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 09:55:20 +00:00
erik.corry@gmail.com
a3629daa2c
Fix external allocated memory accounting to use 64 bit values on
...
64 bit architectures.
Review URL: https://chromiumcodereview.appspot.com/10020032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 09:23:57 +00:00
mstarzinger@chromium.org
00d9c14729
Fix WeakMap processing for evacuation candidates.
...
This fixes processing of WeakMaps so that value entries on an evacuation
candidate are correctly recorded in the slots buffer. We didn't pass the
correct slot into the backing hashtable while visiting values.
Also the live bytes counter for large object space pages was not reset
correctly when incremental marking is aborted.
R=vegorov@chromium.org
BUG=v8:2060
TEST=cctest/test-weakmaps/Regress2060
Review URL: https://chromiumcodereview.appspot.com/10034010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 09:14:29 +00:00
loislo@chromium.org
48f1f7b745
I'd like to add addr field into EntryInfo struct.
...
This will give us the ability to keep entries_ list sorted by id.
And based on that fact we will be able to use it for:
1) GetNodeById method and drop sorted version of entries list in HeapSnapshot;
2) building heap stats;
3) doing the fill stage instead of second iteration over heap.
BUG=none
TEST=none
R=yurys
Review URL: https://chromiumcodereview.appspot.com/10031032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 06:58:42 +00:00
vegorov@chromium.org
e831ec2c4e
Bailout on possible direct eval calls.
...
Environment structure for such calls is different from normal global calls.
R=fschneider@chromium.org
BUG=chromium:122681
Review URL: https://chromiumcodereview.appspot.com/10024060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 13:41:00 +00:00
fschneider@chromium.org
caf579d09e
Insert three missing FP register stack pop instructions.
...
We use fstp(0) already in other places. ffree does not pop the stack,
but only marks a FP register as empty.
BUG=v8:2065
Review URL: https://chromiumcodereview.appspot.com/9960066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 13:39:28 +00:00
yurys@chromium.org
30d51abea1
Use SortedListBSearch instead of custom one in heap profiler
...
Review URL: https://chromiumcodereview.appspot.com/10006032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 11:24:09 +00:00
kmillikin@chromium.org
abfe4f0562
Do not assume that names of function expressions are context-allocated.
...
The heap profile generator assumes that for named function expressions, the
name is context allocated. This is not necessary true.
BUG=v8:2051
TEST=WebKit layout test inspector/profiler/heap-snapshot-inspect-dom-wrapper.html
Review URL: https://chromiumcodereview.appspot.com/9960065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 11:07:16 +00:00
fschneider@chromium.org
752b05a003
Prepare push to trunk. Now working on version 3.10.2.
...
Review URL: https://chromiumcodereview.appspot.com/10024057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 11:01:29 +00:00
erikcorry
f90e665e9a
Ensure that a call to String.prototype.match with a
...
global regexp after a call to String.prototype.replace
with a function argument sets the last match info
correctly. Bug=2058
Review URL: http://codereview.chromium.org/10029009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 10:42:25 +00:00
alexeif@chromium.org
d18eaffdae
Revert "External references should not affect dominance relation."
...
This reverts commit 6e46549d13df2b211ea9b4fac9c09fe5013ec465.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10025014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-08 19:18:06 +00:00
alexeif@chromium.org
5ed3662407
External references should not affect dominance relation.
...
Review URL: https://chromiumcodereview.appspot.com/10007009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-08 18:28:32 +00:00
yurys@chromium.org
502036ae06
Fix presubmit warnings after r11245
...
TBR=mnaganov
Review URL: https://chromiumcodereview.appspot.com/10012040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-06 14:52:20 +00:00
yurys@chromium.org
2f0e0afb09
We can avoid putting all nodes into a hash map from HeapEntry to ID and sorting that map as the nodes are already stored in right order in HeapSnapshot::entries_ list.
...
Review URL: https://chromiumcodereview.appspot.com/10012013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-06 14:16:45 +00:00
mstarzinger@chromium.org
78226352b7
Ensure HAllocateObject always allocates in new-space.
...
This is needed so that we can start removing write-barriers in optimized
code if we can prove that the receiver object is always in new-space.
TEST=cctest/test-heap/OptimizedAllocationAlwaysInNewSpace
Review URL: https://chromiumcodereview.appspot.com/10008007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 15:36:31 +00:00
danno@chromium.org
581e9368d3
Fix glibc presence checks that are incorrectly triggered in some cases.
...
This allows compilation of V8 using uClibc.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9702067
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 15:22:51 +00:00
danno@chromium.org
a897e6e229
MIPS: Remove static initializers in v8.
...
Port r11010 (1daa81bc).
MIPS-specific changes:
-register codes and registers are defined using a macro to avoid redundancy
-renamed s8_fp to fp, removed the "fp" alias
-removed kSavedValueRegister (found by check-static-initializers.sh)
Original commit message:
Landing for pliard@chromium.org: Remove static initializers in v8.
This change includes two CLs by pliard@chromium.org:
1. http://codereview.chromium.org/9447052/ (Add CallOnce() and simple LazyInstance implementation):
Note that this implementation of LazyInstance does not handle global destructors (i.e. the lazy instances a
This CL was initially reviewed on codereview.appspot.com:
http://codereview.appspot.com/5687064/
2. http://codereview.chromium.org/9455088/ (Remove static initializers in v8):
This CL depends on CL 9447052 (adding CallOnce and LazyInstance).
It is based on a patch sent by Digit.
With this patch applied, we have only one static initializer left (in atomicops_internals_x86_gcc.cc). This
This CL also modifies the presubmit script to check the number of static initializers.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9689069
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 15:18:22 +00:00
danno@chromium.org
17db8efe0c
MIPS: Ensure proper alignment of LazyInstance objects.
...
The template system converts the actual struct type to an array of chars.
Make sure the alignment is kept by the compiler.
This fixes a lot of serialization-related HW tests, for example cctest test-serialize/Serialize.
BUG=
TEST=cctest test-serialize
Review URL: https://chromiumcodereview.appspot.com/9702114
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 15:12:28 +00:00
danno@chromium.org
db86043160
Minimize uses of lazy initialization by adding explicit initialization functions.
...
BUG=118686
Review URL: https://chromiumcodereview.appspot.com/9976003
Patch from Philippe Liard <pliard@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 14:10:39 +00:00