svenpanne@chromium.org
ca5dad94a7
Removed dead code (ingenious 3-bit representation of types)
...
Review URL: http://codereview.chromium.org/6973053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 08:21:50 +00:00
svenpanne@chromium.org
78f4dd1208
Use type feedback for unary minus, improving the performance on e.g. 3d-cube by
...
7.2% and math-cordic by 5.7%.
Review URL: http://codereview.chromium.org/7013025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 08:21:35 +00:00
sgjesse@chromium.org
2838a3c78b
Submit builtins-mips.cc.
...
This code submission will compile, but is not testable until the majority
of the mips port is in place. This has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7013031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 07:27:46 +00:00
ricow@chromium.org
964dbff40d
Only send null or undefined as receiver for es5 natives, not generally
...
for builtin functions.
Review URL: http://codereview.chromium.org/7012012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 07:26:44 +00:00
vitalyr@chromium.org
658e323e87
Micro-optimize passing of args to HasLocalProperty.
...
Review URL: http://codereview.chromium.org/7018001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 16:19:03 +00:00
fschneider@chromium.org
5f29f9bd8e
Don't use environment values at certain deoptimize-instructions.
...
If a HDeoptimize does not cut away parts of the control-flow-graph
we don't need to insert uses to correctly elimiate dead phis since
the full function is visible to the optimizing compiler.
This is a small improvement of the change r7221 which fixed a problem
when deoptimizing on never executed case-clauses.
Review URL: http://codereview.chromium.org/7012010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:56:56 +00:00
sgjesse@chromium.org
58161ce6ed
Introduce ic-mips.cc.
...
This code submission will compile, but is not testable until the majority
of the mips port is in place. This has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//6973024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:48:20 +00:00
karlklose@chromium.org
b606195012
ARM: Fix disasm for strh, vabs, vneg. Add load/store tests.
...
Patch from ARM Ltd.
BUG=none
TEST=added to test/cctest/test-disasm-arm.cc
Original review at http://codereview.chromium.org/7013024/ .
Review URL: http://codereview.chromium.org/7013027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:44:49 +00:00
svenpanne@chromium.org
a3afc9a896
Made the output of the --trace-representation flag a bit more informative and
...
centralized its handling.
Review URL: http://codereview.chromium.org/6969034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:36:49 +00:00
sgjesse@chromium.org
b9c771c106
ARM: Reduce amount of code generated for context save on deopt.
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6930038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:33:14 +00:00
ager@chromium.org
89278730bb
Make the code flushing candidate field explicit in code objects.
...
This way it is counted and the rounding of the size will just work
without extra tweaking if you want to add an extra field to code
objects.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6969037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:13:00 +00:00
vitalyr@chromium.org
bc52ed0850
Extend the fast case of HasLocalProperty.
...
Review URL: http://codereview.chromium.org/7016016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 12:48:10 +00:00
svenpanne@chromium.org
db563ed204
Fixed TypeFeedbackOracle for unary operations: Record code for the corresponding
...
type recording IC.
Review URL: http://codereview.chromium.org/6973025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 08:54:13 +00:00
dslomov@chromium.org
adfa56af54
Speculative fix fo MultithreadedParallelIsolates on ARM
...
It looks like the problem with the test is too many concurrently created isolates.
Cranking the number to 100 on MacOS and Linux produce similar results.
BUG=http://code.google.com/p/v8/issues/detail?id=1375
TBR=vitalyr
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 17:29:47 +00:00
sgjesse@chromium.org
4e18d50834
Add constant splitting for user controlled constants in the full compiler
...
This is IA32 only for now.
Added a random value to each assembler instance (JIT cookie) to be used for constant splitting. Added safe versions of setting a register with an immediate value and for pushing an immediate value. Used these functions where user controlled immediate values could be emitted in the code stream. I also used it for immediates which are an argument number even though the number of formal arguments is currently limited to 16k.
I found no compares directly with user controlled constants.
I am not sure whether the test is that useful, but it might catch some changes missing constant splitting.
Review URL: http://codereview.chromium.org//7005031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 14:16:24 +00:00
vitalyr@chromium.org
26bf1dfd4a
Kill some dead code.
...
Review URL: http://codereview.chromium.org/6995048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 13:45:30 +00:00
fschneider@chromium.org
48077e89e9
Remove support for branch hints from the IA32 and X64 assembler.
...
They were not on by default and should not be needed on modern
platforms.
Review URL: http://codereview.chromium.org/7001025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 13:26:07 +00:00
vitalyr@chromium.org
03c00ee6a6
Support symbol comparison in crankshaft.
...
Review URL: http://codereview.chromium.org/7000021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 12:50:04 +00:00
whesse@chromium.org
b77f131914
Don't emit code for HContext values with no uses.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6982023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 12:11:23 +00:00
sandholm@chromium.org
fcd9380eda
JSON.parse improvement. Call "LookupSymbol" rather than "NewString"
...
for property string tokens.
Review URL: http://codereview.chromium.org/7004016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:56:15 +00:00
vitalyr@chromium.org
4cc800b3cf
Support %_IsUndetectableObject in crankshaft.
...
Review URL: http://codereview.chromium.org/6995046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:53:43 +00:00
karlklose@chromium.org
7a798fb9e9
Prepare push to trunk. Now working on version 3.3.7.
...
Review URL: http://codereview.chromium.org/7005029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:34:56 +00:00
fschneider@chromium.org
6db15ae34b
Remove peephole optimiziations from IA32 and ARM assembler.
...
They are not used with Crankshaft anymore.
Review URL: http://codereview.chromium.org/7003025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:29:53 +00:00
ager@chromium.org
8a0b1f5bc9
Allow closures to be optimized if outer contexts that call eval are all in strict mode.
...
R=kmillikin@chromium.org
BUG=
TEST=mjsunit/compiler/eval-introduced-closure.js
Review URL: http://codereview.chromium.org/6993008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:26:11 +00:00
ricow@chromium.org
fa2a92b45f
Add case for EXTERNAL_ARRAY_TRANSITION to JSObject::NormalizeProperties
...
Review URL: http://codereview.chromium.org/7004014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:25:03 +00:00
whesse@chromium.org
bf06fbdbf1
Recommit "First step in letting Crankshaft inline functions with a different context.""
...
This reverts r7810, thus recommitting 7807.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6963009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:03:12 +00:00
jkummerow@chromium.org
79e76dbd34
Rename parameters to fix Windows build
...
TEST=compiles on Windows
Review URL: http://codereview.chromium.org/7005027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 09:50:34 +00:00
svenpanne@chromium.org
9f3f90ddc0
Improved c1visualizer output a bit: Emit a human-readable description for
...
changes instead of a bit-pattern. Fixed logic when ranges are emitted. Improved
indentation in hydrogen.cfg (aesthetical change only). Some minor additional
cleanup.
Review URL: http://codereview.chromium.org/6995024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 09:19:28 +00:00
jkummerow@chromium.org
e90d16953c
Remove NearLabel, replacing remaining occurrences with Label
...
TEST=compiles, existing tests pass
Review URL: http://codereview.chromium.org/6991010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 09:12:16 +00:00
ricow@chromium.org
7f8a918f08
Allow strict mode flag as extraicstate for keyed external array store ic
...
We currently hit an assertion in computeflags, but the extra_ic_state is used to pass the strict mode flag in.
BUG: 1383
Review URL: http://codereview.chromium.org/7003022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 08:53:46 +00:00
sgjesse@chromium.org
67ebabc16e
Add cctest/test-disasm-mips which was mistakenly omitted from r7825.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org//6994013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 08:26:22 +00:00
erik.corry@gmail.com
291781ed3c
Limit the generation of regexp code with large inlined constants.
...
Review URL: http://codereview.chromium.org/6997015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 06:39:27 +00:00
jkummerow@chromium.org
944a388412
Avoid using a register for constant external array indices.
...
This CL is based on and obsoletes CL 6879037.
TEST=mjsunit/external-array.js
Review URL: http://codereview.chromium.org/6902112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 15:25:17 +00:00
jkummerow@chromium.org
1eedd8056d
Fix timeout of test regress-1118.js
...
TEST=mjsunit/regress/regress-1118.js no longer times out when run in the ARM simulator.
Review URL: http://codereview.chromium.org/6994010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 15:07:30 +00:00
svenpanne@chromium.org
986ed5358e
Reverted some code which got accidentally committed as part of another commit.
...
TBR=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/6994011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 14:39:19 +00:00
vitalyr@chromium.org
5ac2a3acfc
Fix lint.
...
TBR=svenpanne@chromium.org
Review URL: http://codereview.chromium.org/6995022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 14:21:23 +00:00
vitalyr@chromium.org
c10267f1fa
Refactor HCheckInstanceType to allow mask/tag tests.
...
This allows us to get rid of totally fake LAST_STRING_TYPE and makes
it possible to test for symbols.
I considered splitting HCheckInstanceType into two instructions, but
it seems nice to be able to hide the instance type implementation
details from the hydrogen level.
Review URL: http://codereview.chromium.org/6964011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 14:17:23 +00:00
svenpanne@chromium.org
4912c0371b
A few "extract method" refactorings, trying to get individual method definitions
...
onto a sinlge 30" screen. A lot of times, the AST visitor stops a bit too early,
so we have to do the rest of the dispatch by hand. This is caused by the fact
that the kind of the AST nodes are a bit too coarse for some traversals (e.g. a
single node type for all binary ops), perhaps one could try to refine this a
little bit more.
Review URL: http://codereview.chromium.org/6963008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 13:29:57 +00:00
karlklose@chromium.org
00e8236096
ARM: Disable test test-lockers/MultithreadedParallelIsolates because it is flaky.
...
BUG=1375
Review URL: http://codereview.chromium.org/6994008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 12:30:01 +00:00
jkummerow@chromium.org
2d38ad98fd
fix x64 build error (introduced by rebasing)
...
TEST=compiles
Review URL: http://codereview.chromium.org/6980018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 09:15:21 +00:00
jkummerow@chromium.org
95ff85112f
Merge Label and NearLabel
...
by adding NearLabel's functionality to Label and introducing a "near" parameter to jump instructions.
TEST=compiles; existing tests still pass.
Review URL: http://codereview.chromium.org/6928060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 09:03:42 +00:00
sgjesse@chromium.org
5d8cd989ab
Add new function ICCompareStub::GenerateSymbols to mips, introduced in r7824.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org//6970006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 06:29:16 +00:00
vegorov@chromium.org
d9c80d4771
Propagate a Failure from GenerateDictionaryNegativeLookup instead of causing GC.
...
Review URL: http://codereview.chromium.org/6973001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 16:15:18 +00:00
ager@chromium.org
8033be880e
Add IsCallable method for Object in the API
...
Patch by Peter Varga.
BUG=none
TEST=cctest/test-api/CallableObject
Review URL: http://codereview.chromium.org/6964005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 15:24:48 +00:00
fschneider@chromium.org
45d07bcd32
Simple elimination of redundant array-hole checks.
...
If the result of an fast elements load is converted to an untagged
representation we can omit the hole check if the value is not used
anywhere else except for HChange instructions converting it to
an untagged representation since those will deoptimize for the hole
value anyway.
Review URL: http://codereview.chromium.org/6964012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 15:21:40 +00:00
svenpanne@chromium.org
2fb4556bfe
Code should be retrieved via the AST id, not via the source position. Bugs like
...
this are a "little bit" hard to find when everything is an int... >:-(
Review URL: http://codereview.chromium.org/6970001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 14:58:06 +00:00
sgjesse@chromium.org
40172e6a7b
Update mips infrastructure files.
...
- Merge to current tip of tree, fix build problems.
- Remove deprecated source files.
- Add cctest test-disasm-mips
- Consistently use single-reg push()/pop() (remove uppercase variants)
- Add assembler field accessors.
- More style fixes.
BUG=
TEST=
Review URL: http://codereview.chromium.org//6965006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 14:28:09 +00:00
vitalyr@chromium.org
07ed2f1263
Compare IC: add SYMBOLS state.
...
Review URL: http://codereview.chromium.org/6960011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 13:30:04 +00:00
lrn@chromium.org
dcfa021ff5
Make preparser-process.cc ignore flags on the command line.
...
Avoids breaking when passed, e.g., the --nosse2 flag by certain builders.
Review URL: http://codereview.chromium.org/6964008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 12:39:16 +00:00
vitalyr@chromium.org
7cd41c875d
Make sure v8::String::Value and relatives are always initialized.
...
BUG=1370
Review URL: http://codereview.chromium.org/6966003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 10:39:02 +00:00