jkummerow
f4872f7477
Introduce {FAST,SLOW}_STRING_WRAPPER_ELEMENTS
...
String wrappers (new String("foo")) are special objects: their string
characters are accessed like elements, and they also have an elements
backing store. This used to require a bunch of explicit checks like:
if (obj->IsJSValue() && JSValue::cast(obj)->value()->IsString()) {
/* Handle string characters */
}
// Handle regular elements (for string wrappers and other objects)
obj->GetElementsAccessor()->Whatever(...);
This CL introduces new ElementsKinds for string wrapper objects (one for
fast elements, one for dictionary elements), which allow folding the
special-casing into new StringWrapperElementsAccessors.
No observable change in behavior is intended.
Review URL: https://codereview.chromium.org/1612323003
Cr-Commit-Position: refs/heads/master@{#33616}
2016-01-29 18:58:04 +00:00
jochen
fded08f694
Reland of "Remove ExternalArray, derived types, and element kinds"
...
Original issue's description:
> Remove ExternalArray, derived types, and element kinds
>
> BUG=v8:3996
> R=jarin@chromium.org , mvstanton@chromium.org , bmeurer@chromium.org
> LOG=y
>
> Committed: https://crrev.com/607ef7c6009a24ebf195b4cab7b0b436c5afd21c
> Cr-Commit-Position: refs/heads/master@{#29872}
BUG=v8:3996
R=bmeurer@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/1262583002
Cr-Commit-Position: refs/heads/master@{#29893}
2015-07-28 09:29:55 +00:00
machenbach
814048a04f
Revert of Remove ExternalArray, derived types, and element kinds (patchset #5 id:80001 of https://codereview.chromium.org/1254623002/ )
...
Reason for revert:
[Sheriff] Breaks several layout tests, e.g.:
http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2032/builds/1067
Several output lines change from PASS to FAIL. If the changes are intended, please land a needsmanualrebaseline change in blink first.
Original issue's description:
> Remove ExternalArray, derived types, and element kinds
>
> BUG=v8:3996
> R=jarin@chromium.org , mvstanton@chromium.org , bmeurer@chromium.org
> LOG=y
>
> Committed: https://crrev.com/607ef7c6009a24ebf195b4cab7b0b436c5afd21c
> Cr-Commit-Position: refs/heads/master@{#29872}
TBR=bmeurer@chromium.org ,hpayer@chromium.org,jarin@chromium.org,mvstanton@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3996
Review URL: https://codereview.chromium.org/1257223002
Cr-Commit-Position: refs/heads/master@{#29883}
2015-07-27 20:32:16 +00:00
jochen
607ef7c600
Remove ExternalArray, derived types, and element kinds
...
BUG=v8:3996
R=jarin@chromium.org , mvstanton@chromium.org , bmeurer@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/1254623002
Cr-Commit-Position: refs/heads/master@{#29872}
2015-07-27 13:19:36 +00:00
jochen
4da289c55a
Store offset between fixed typed array base and data start in object
...
The layout of fixed typed array base is then capable of handling
external typed arrays as well. In a follow-up CL, I'll delete external
typed arrays, and use fixed typed array base instead
BUG=v8:3996
R=jarin@chromium.org ,mstarzinger@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1248483007
Cr-Commit-Position: refs/heads/master@{#29786}
2015-07-22 10:32:25 +00:00
verwaest
c8211b64cd
Distinguish slow from fast sloppy arguments
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1221713003
Cr-Commit-Position: refs/heads/master@{#29447}
2015-07-02 14:38:53 +00:00
jochen
6cc3eb66a2
Introduce a base pointer field in FixedTypedArrayBase and teach GC about it
...
This is the first step towards unifying external and on-heap typed arrays.
The end-state will be that this base pointer either points to the on-heap values
or to the externally allocated array buffer.
BUG=v8:3996
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1176263004
Cr-Commit-Position: refs/heads/master@{#29039}
2015-06-16 07:37:23 +00:00
erikcorry
4f5337a2b6
Cosmetic changes to tests to make it easier to concatenate them.
...
When compiling on a laptop I like to concatenate the small test files.
This makes a big difference to compile times. These changes make that
easier.
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1163803002
Cr-Commit-Position: refs/heads/master@{#28742}
2015-06-01 22:47:08 +00:00
bmeurer@chromium.org
d07a2eb806
Rename ASSERT* to DCHECK*.
...
This way we don't clash with the ASSERT* macros
defined by GoogleTest, and we are one step closer
to being able to replace our homegrown base/ with
base/ from Chrome.
R=jochen@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/430503007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 11:34:54 +00:00
danno@chromium.org
1d2a4b8333
Remove experimental flags that are now required
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/397253002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-18 07:17:21 +00:00
svenpanne@chromium.org
018ef484b9
More OStreamsUse OStreams more often.
...
This is a mostly mechanical CL (more than 90% Emacs macros and
query-replace-regexp) moving FILE*/StringStream*-based APIs to
OStream-based APIs. There are a few places where this had to stop,
otherwise the CL would be even bigger, but this can easily and
incrementally cleaned up later.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/363323003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-07 09:57:29 +00:00
danno@chromium.org
634cb5e8a1
Revert "Revert "Reland 21774: Generate KeyedLoadGeneric with Hydrogen""
...
This CL tickled an unrelated arm64 bug which was is fixed separately.
The MIPS port (originally landed 21784) is also included.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/331633002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 09:58:10 +00:00
danno@chromium.org
c17e79293b
Revert "Reland 21774: Generate KeyedLoadGeneric with Hydrogen"
...
Due to lingering arm64 failures in Test262
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/332663003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 07:38:49 +00:00
danno@chromium.org
905d777d8f
Reland 21774: Generate KeyedLoadGeneric with Hydrogen
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/57123002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-11 21:44:50 +00:00
danno@chromium.org
006bdafecc
Revert 21774: "Generate KeyedLoadGeneric with Hydrogen"
...
Due to arm64 and GCMole failures
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/329253003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-11 16:33:44 +00:00
danno@chromium.org
3b9039abc3
Generate KeyedLoadGeneric with Hydrogen
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/57123002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-11 14:56:38 +00:00
jochen@chromium.org
799fc835f8
Move atomic ops and related files to base library
...
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/316133002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-05 12:14:47 +00:00
jochen@chromium.org
56a486c322
Use full include paths everywhere
...
- this avoids using relative include paths which are forbidden by the style guide
- makes the code more readable since it's clear which header is meant
- allows for starting to use checkdeps
BUG=none
R=jkummerow@chromium.org , danno@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/304153016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 08:12:43 +00:00
danno@chromium.org
def6cff3da
Allow specifying base offset when constructing Keyed hydrogen instructions
...
This is preparation for pending hydrogen stub work that needs to access memory using KeyedLoad/KeyedStore operations where the base offset used for the accesses are is the the default (e.g. the size of an FixedArray header for FixedArrays or zero for external arrays).
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/295913009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 08:37:50 +00:00
bmeurer@chromium.org
d4b533d41b
Bulk update of Google copyright headers in source files.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/259183002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 06:42:26 +00:00
dslomov@chromium.org
d66c832edc
Harden IsMoreGeneralElementsKindTransition.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/213783004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 16:25:05 +00:00
dslomov@chromium.org
19c354b7b0
Support typed arrays in IsMoreGeneralElementsKindTransition.
...
R=verwaest@chromium.org
BUG=357054
LOG=Y
Review URL: https://codereview.chromium.org/220403004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-01 16:41:35 +00:00
dslomov@chromium.org
76b8f25edb
This implements allocating small typed arrays in heap.
...
R=mvstanton@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/150813004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 12:50:13 +00:00
dslomov@chromium.org
cdc9812756
Revert "This implements allocating small typed arrays in heap."
...
This reverts commit r20244 for breaking Win64 build and webkit tests.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/208503007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 14:12:58 +00:00
dslomov@chromium.org
654b6a27d1
This implements allocating small typed arrays in heap.
...
R=mvstanton@chromium.org , verwaest@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=20240
Review URL: https://codereview.chromium.org/150813004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 13:21:58 +00:00
dslomov@chromium.org
727bc2153e
Revert "This implements allocating small typed arrays in heap."
...
This reverts commit r20240 for breaking Windows build.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/211003003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 12:58:22 +00:00
dslomov@chromium.org
322a474bf2
This implements allocating small typed arrays in heap.
...
R=mvstanton@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/150813004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 12:51:49 +00:00
rossberg@chromium.org
3f702d4bf9
Mode clean-up pt 1: rename classic/non-strict mode to sloppy mode
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/177683002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 14:39:08 +00:00
dslomov@chromium.org
1a67b7f86a
External Array renaming and boilerplate scrapping
...
Replaced symbolic names with correct JS name (byte -> int8, unsigned int -> uint32 etc).
Using macros to scrap the boilerplate
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/145133013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-24 16:01:15 +00:00
dslomov@chromium.org
5da41be7b8
Implement in-heap backing store for typed arrays.
...
This adds a fixed array sub-type that will represent a backing store for
typed arrays allocated with TypedArray(length) construtor.
R=mvstanton@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/101413006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-16 17:08:45 +00:00
dslomov@chromium.org
34eeeb8953
Revert "Implement in-heap backing store for typed arrays."
...
This reverts commit r18649 for breaking Linux/nosnap and Win64 tests.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/140793003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-16 16:00:36 +00:00
dslomov@chromium.org
97040ce67b
Implement in-heap backing store for typed arrays.
...
This adds a fixed array sub-type that will represent a backing store for
typed arrays allocated with TypedArray(length) construtor.
R=mvstanton@chromium.org , verwaest@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=18646
Review URL: https://codereview.chromium.org/101413006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-16 15:01:27 +00:00
dslomov@chromium.org
95f572389e
Revert "Implement in-heap backing store for typed arrays."
...
This reverts commit r18646 for breaking Win32 build.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/132233012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-16 14:26:15 +00:00
dslomov@chromium.org
0c960c2e96
Implement in-heap backing store for typed arrays.
...
This adds a fixed array sub-type that will represent a backing store for
typed arrays allocated with TypedArray(length) construtor.
R=mvstanton@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/101413006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-16 14:18:37 +00:00
jkummerow@chromium.org
c9b41c6995
Limit size of dehoistable array indices
...
LOG=Y
BUG=chromium:319835,chromium:319860
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/74113002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-15 17:24:10 +00:00
mvstanton@chromium.org
3cf157b43b
Inline zero argument array constructor.
...
patch from issue 54583003 (dependent code).
Zero arguments - very easy
1 argument - three special cases:
a) If length is a constant in valid array length range,
no need to check it at runtime.
b) respect DoNotInline feedback on the AllocationSite for
cases that the argument is not a smi or is an integer
with a length that should create a dictionary.
c) if kind feedback is non-holey, and length is non-constant,
we'd have to generate a lot of code to be correct.
Don't inline this case.
N arguments - one special case:
a) If a deopt ever occurs because an input argument isn't
compatible with the elements kind, then set the
DoNotInline flag.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/55933002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 12:05:09 +00:00
yangguo@chromium.org
02674ee414
Keep two empty lines between declarations for cpp files
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18509003
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:52:11 +00:00
mvstanton@chromium.org
a85fd03caa
Consolidated all the key store/load classes in the Hydrogen and Lithium
...
space into just two:
HLoadKeyed/HLoadKeyedGeneric and HStoreKeyed/HStoreKeyedGeneric
LLoadKeyed/LLoadKeyedGeneric and LStoreKeyed/LStoreKeyedGeneric
BUG=
Review URL: https://codereview.chromium.org/11238016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-02 09:18:53 +00:00
danno@chromium.org
9910edbb9a
Implement tracking and optimizations of packed arrays
...
R=jkummerow@chromium.org
TEST=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10170030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 14:24:29 +00:00