fschneider@chromium.org
cac3008437
[hydrogen] optimize switch with string clauses
...
Hydrogen should optimize not only SMI clauses, but clauses with string literals
too.
Patch from fedor.indutny <fedor.indutny@gmail.com>.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8373029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-08 09:08:33 +00:00
svenpanne@chromium.org
36b715b1bd
Refactoring only: Make the handling of PropertyType more explicit.
...
Do not rely on 'default' clauses or 'if's when analysing a PropertyType, because
this makes it hard to find the relevant places when a new type is added. Note
that the detection of "phantom property types" is left untouched, because this
might have a performance impact, especially for the GC (to be investigated).
This is a preliminary step for introducing a new kind of map transition.
Review URL: http://codereview.chromium.org/8491016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-08 08:42:13 +00:00
erik.corry@gmail.com
b9a2d181a1
Revert accidental commit that messed up the incremental speed heuristics.
...
Review URL: http://codereview.chromium.org/8467014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-07 14:00:02 +00:00
keuchel@chromium.org
c0d0bf863a
Revert r9870 due to browser-test failures.
...
This reverts commit 4d5b5f12aac932ad892c7b6f152b6168708d4210.
Review URL: http://codereview.chromium.org/8493006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-07 12:33:58 +00:00
ricow@chromium.org
3a41613340
Optimize format message to not use DefineOwnProperty and freeze, do these inline
...
Review URL: http://codereview.chromium.org/8494005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-07 10:50:39 +00:00
erik.corry@gmail.com
52b1457fac
Don't set the limit that triggers the next GC higher than the max
...
old space size.
Review URL: http://codereview.chromium.org/8491009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-07 10:35:24 +00:00
yangguo@chromium.org
cfc6f31e59
MIPS: Adding assertions to fast elements conversion.
...
Port r9875 (97dc1e0e).
BUG=
TEST=
Review URL: http://codereview.chromium.org/8467008
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-07 10:31:54 +00:00
jkummerow@chromium.org
5bbd86bc22
Prepare push to trunk. Now working on version 3.7.5.
...
R=yangguo@chromium.org
Review URL: http://codereview.chromium.org/8492005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-07 10:08:24 +00:00
keuchel@chromium.org
aad9e50fb4
MIPS: Remove some initialization checks based on source positions.
...
Port r9870 (959ec43).
Original commit message:
This depends on
http://codereview.chromium.org/8352039 and
http://codereview.chromium.org/8423005 .
BUG=
TEST=
Review URL: http://codereview.chromium.org/8467007
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-07 09:42:54 +00:00
ricow@chromium.org
086ae44213
Optimize DefineOneShotAccessor in messages.js to not call DefineOwnProperty.
...
Review URL: http://codereview.chromium.org/8490008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-07 09:30:28 +00:00
jkummerow@chromium.org
9fa02bc5dd
MIPS: Cleanup: use JumpIf[Not]Smi() whenever we can
...
Port r8322 (7b8b4a951f).
BUG=
TEST=
Review URL: http://codereview.chromium.org/8428004
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-07 08:41:47 +00:00
jkummerow@chromium.org
f33e9909a6
Override product_extension instead of product_version to set SONAME for Linux shared library
...
BUG=v8:1786
Review URL: http://codereview.chromium.org/8462006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-04 14:47:13 +00:00
mstarzinger@chromium.org
bca8d42e3b
Revert r9596 due to page-cycler regressions.
...
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/8463006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-04 13:05:16 +00:00
jkummerow@chromium.org
9625d5d4a0
Fix Array.{splice,slice} to set proper ElementsKind of result
...
TEST=mjsunit/elements-kind.js
Review URL: http://codereview.chromium.org/8430036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-04 12:47:58 +00:00
jkummerow@chromium.org
f2787a42b0
Fix JSObject::EnsureCanContainElements to correctly iterate over Arguments
...
TEST=mjsunit/elements-kind.js
Review URL: http://codereview.chromium.org/8437094
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-04 12:31:44 +00:00
jkummerow@chromium.org
8450c60d47
Fix Runtime_ArrayConcat to handle FAST_DOUBLE_ELEMENTS
...
TEST=mjsunit/elements-kind.js; stanford-crypto-sha256-iterative in debug mode
Review URL: http://codereview.chromium.org/8334028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-04 12:19:35 +00:00
yangguo@chromium.org
2944545888
Adding assertions to fast elements conversion.
...
Review URL: http://codereview.chromium.org/8437092
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 16:24:24 +00:00
keuchel@chromium.org
48fed9a8ab
Clean up Scope::CollectUsedVariables.
...
Review URL: http://codereview.chromium.org/8438071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 14:50:19 +00:00
mstarzinger@chromium.org
0bbfb46aa6
Fix Harmony sets and maps to allow undefined as keys.
...
This uses a global sentinel as a replacement for undefined keys, which
are not supported internally but required for Harmony sets and maps.
R=rossberg@chromium.org
BUG=v8:1622
TEST=mjsunit/harmony/collections
Review URL: http://codereview.chromium.org/8439069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 14:33:58 +00:00
keuchel@chromium.org
ea18539244
Tune context allocation for variables accessed from inner scopes.
...
After introduction of with scopes we have enough static information to omit
context allocation in the case that a variable is accessed from a nested block
or catch scope of the same function. Only variables accessed from the inside of
a nested function or with scope are forced to be allocated in the context.
This essentially reverts
http://code.google.com/p/v8/source/detail?r=9281 .
which in turn reverted an earlier change.
Review URL: http://codereview.chromium.org/8431001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 14:33:46 +00:00
mstarzinger@chromium.org
79cadcc947
Fix Harmony sets and maps to allow null as key.
...
This changes the internal convention for marking deleted entries in hash
tables from null_value to the_hole_value, which is consistent with other
usages of the_hole.
R=rossberg@chromium.org ,kmillikin@chromium.org
BUG=v8:1622
TEST=mjsunit/harmony/collections
Review URL: http://codereview.chromium.org/8343056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 14:17:05 +00:00
keuchel@chromium.org
fd21937812
Remove some initialization checks based on source positions.
...
This depends on
http://codereview.chromium.org/8352039 and
http://codereview.chromium.org/8423005 .
Review URL: http://codereview.chromium.org/8422010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 12:05:48 +00:00
keuchel@chromium.org
58123bff56
Remove some unnecessary binding initialization checks.
...
This depends on http://codereview.chromium.org/8352039/ .
Review URL: http://codereview.chromium.org/8423005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 11:59:51 +00:00
keuchel@chromium.org
7385fef2ca
Cleanup ScopeInfo and SerializedScopeInfo.
...
Both classes have been merged into a single ScopeInfo
class that implements the functionality from both.
This CL does not adapt the broken gdb-jit interface.
Review URL: http://codereview.chromium.org/8352039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 10:36:55 +00:00
keuchel@chromium.org
80d1b898fb
Fix gcc-4.6 warnings.
...
BUG=v8:1806
Review URL: http://codereview.chromium.org/8386072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 08:59:01 +00:00
kmillikin@chromium.org
224bbad462
MIPS: Add and use ElementsKind side effect
...
Port r9847 (fc7590).
Original commit message:
Also partition side effects into observable and not observable, with only observable requiring Simulates and non-observable changes able to participate in GVN and code hoisting.
BUG=
TEST=
Review URL: http://codereview.chromium.org/8387044
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 08:58:37 +00:00
kmillikin@chromium.org
7dac2367c0
MIPS: Remove the forward-bailout stack from the non-optimizing compiler.
...
Port r9863 (0996dc77)
Original commit message:
This was pretty heavyweight. It was kept in just for a few corner cases
that assumed it was there. We can work around them by making sure that the
expression in a reified test context is always really the expression that
was visited in that context; and by inspecting the context manually and
consing up a pair of extra AST IDs for the unusual case of unary not in a
value AST context.
BUG=
TEST=
Review URL: http://codereview.chromium.org/8372085
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 08:57:56 +00:00
yangguo@chromium.org
aaba9d8f9d
Implement VirtualMemory on FreeBSD to fix build.
...
BUG=v8:1807
Review URL: http://codereview.chromium.org/8439068
Patch from Ben Noordhuis <info@bnoordhuis.nl>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-03 08:33:06 +00:00
kmillikin@chromium.org
4e4a901d96
Remove the forward-bailout stack from the non-optimizing compiler.
...
This was pretty heavyweight. It was kept in just for a few corner cases
that assumed it was there. We can work around them by making sure that the
expression in a reified test context is always really the expression that
was visited in that context; and by inspecting the context manually and
consing up a pair of extra AST IDs for the unusual case of unary not in a
value AST context.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8386037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-02 16:53:32 +00:00
ulan@chromium.org
307b589e61
Fix error introduced in r9431, which leads to redundant lookup when setting property with handler.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/8386030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-02 13:04:59 +00:00
danno@chromium.org
5c40d7a55d
Enable VFP instructions for Android.
...
R=jkummerow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8437047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-02 10:57:03 +00:00
fschneider@chromium.org
f3f16dc17a
Make non-templatized versions of LIR printing functions.
...
This avoid duplicating the code for each template instance.
Also remove dead code from different places in our code base.
Removed some verification code from release builds.
Review URL: http://codereview.chromium.org/8387070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-02 08:32:40 +00:00
fschneider@chromium.org
acf8fd28bd
MIPS: Merge IR classes for different bitwise operations AND, OR and XOR into one class.
...
Port r9846 (4cd055a).
Original commit message:
Since we already have only one LIR class, it does not make much sense to separate them at the HIR level.
BUG=
TEST=
Review URL: http://codereview.chromium.org/8432010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-01 16:13:05 +00:00
fschneider@chromium.org
aa34b432de
Remove one-line helper used in two places.
...
Review URL: http://codereview.chromium.org/8387067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-01 12:25:18 +00:00
whesse@chromium.org
7a25c43a07
Remove stack height tracking from ia32 non-optimizing code generator.
...
Review URL: http://codereview.chromium.org/8340023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-01 12:20:46 +00:00
fschneider@chromium.org
d418a11fdd
Use placement-new for zone-allocation in the Lithium classes.
...
This avoid calling Isolate::Current on each zone-allocation of
a Lithium object.
Review URL: http://codereview.chromium.org/8429001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-01 11:49:31 +00:00
fschneider@chromium.org
97c3750fd8
Fix bug introduced by my refactoring of bitwise HIR instructions.
...
DataEquals was not overridden properly.
Review URL: http://codereview.chromium.org/8387066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-01 11:35:54 +00:00
lrn@chromium.org
65b9ab93af
Merged Scanner and JavaScriptScanner.
...
JavaScriptScanner had become the only concrete subclass of Scanner, so there
was no longer a need for the distinction.
Also fixed up comments.
Review URL: http://codereview.chromium.org/8384003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-01 07:47:15 +00:00
vegorov@chromium.org
858320725b
Split incremental marking write barrier into fast and slow paths.
...
Force inlining of the fast path.
Force inlining LiteralBuffer::AddChar and Scanner::AddLiteralChar.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/8431010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 20:59:28 +00:00
ulan@chromium.org
da49e4d83d
Convert array index to integer when computing pause distribution for spinning-balls.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/8430006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 17:26:59 +00:00
ulan@chromium.org
e67096aded
Allow to set a time limit for spinning-balls and output the pause distribution at the end.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/8428002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 17:05:37 +00:00
keuchel@chromium.org
6b533c315a
Fix unwanted implicit conversion from bool to int.
...
We have the following signatures:
VariableProxy* Scope::NewUnresolved(Handle<String> name,
int position = RelocInfo::kNoPosition);
bool Parser::inside_with() const;
Review URL: http://codereview.chromium.org/8427001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 15:04:27 +00:00
danno@chromium.org
75585d9643
Create stub and runtime function for ia32 full-codegen array literal element initialization.
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8359014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 14:42:06 +00:00
jkummerow@chromium.org
669bfc0363
Optimize JS date implementation for smi-only arrays
...
Review URL: http://codereview.chromium.org/8409010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 14:39:21 +00:00
danno@chromium.org
0766a138a6
Add and use ElementsKind side effect
...
Also partition side effects into observable and not observable, with only observable requiring Simulates and non-observable changes able to participate in GVN and code hoisting.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8380017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 14:15:10 +00:00
fschneider@chromium.org
0df9569fe5
Merge IR classes for different bitwise operations AND, OR and XOR into one class.
...
Since we already have only one LIR class, it does not make much sense to separate
them at the HIR level.
Review URL: http://codereview.chromium.org/8426005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 13:06:26 +00:00
kmillikin@chromium.org
d00b82ff91
MIPS: updated atomic operations.
...
Specifically:
-fixed a bug in CompareAndSwap that caused randomly occuring timeouts on MIPS boards.
-added gcc inline asm control push/pop instructions to correctly save/restore the reorder setting instead of simply assuming it should be enabled.
-reordered/optimized some instructions to utilize MIPS-specific pipelining features (branch delay slot).
-fixed improper usage of write barriers
BUG=
TEST=
Review URL: http://codereview.chromium.org/8413073
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 12:47:02 +00:00
kmillikin@chromium.org
ee3197d309
MIPS: Handlify CompileConstructStub and the remaining CallStubCompiler functions.
...
Port r9837 (38061af).
Port r9834 (95ac04).
Original commit message (r9834):
Also, handlify functions for loading with interceptors and callbacks.
Remove some unneeded code. Rename Foreign::address() because it
confusingly shadows HeapObject::address() which does something quite
different.
BUG=
TEST=
Review URL: http://codereview.chromium.org/8400087
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 12:36:11 +00:00
kmillikin@chromium.org
3ba063197d
MIPS: Fixed wrong register usage in StringDictionaryLookupStub::GenerateNegativeLookup.
...
This fixes a lot of test failures triggered by r9834, for example mjsunit/const-redecl.js.
BUG=
TEST=
Review URL: http://codereview.chromium.org/8417050
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 12:34:13 +00:00
mstarzinger@chromium.org
358d7c2078
Adapt date test to be timezone independant.
...
R=yangguo@chromium.org
BUG=v8:1792
TEST=mjsunit/date
Review URL: http://codereview.chromium.org/8423004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 11:15:23 +00:00