yangguo@chromium.org
a2099f5292
Serialize all external strings except for native source code strings.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/604373008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 09:39:13 +00:00
svenpanne@chromium.org
6e3b54ae36
Merged FeedbackSlotInterface into AstNode, removing the need for a 2nd vtable.
...
This tiny change shaves off 112MB from the peak memory usage in the
bug mentioned below, more to come...
BUG=417697
LOG=y
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/611393004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 09:38:28 +00:00
yurys@chromium.org
6482fb3ee4
Extend CPU profiler with mapping ticks to source lines
...
The idea behind of this solution is to use the existing "relocation info" instead of consumption the CodeLinePosition events emitted by the V8 compilers.
During generation code and relocation info are generated simultaneously.
When code generation is done you each code object has associated "relocation info".
Relocation information lets V8 to mark interesting places in the generated code: the pointers that might need to be relocated (after garbage collection),
correspondences between the machine program counter and source locations for stack walking.
This patch:
1. Add more source positions info in reloc info to make it suitable for source level mapping.
The amount of data should not be increased dramatically because (1) V8 already marks interesting places in the generated code and
(2) V8 does not write redundant information (it writes a pair (pc_offset, pos) only if pos is changed and skips other).
I measured it on Octane benchmark - for unoptimized code the number of source positions may achieve 2x ('lin_solve' from NavierStokes benchmark).
2. When a sample happens, CPU profiler finds a code object by pc, then use its reloc info to match the sample to a source line.
If a source line is found that hit counter is increased by one for this line.
3. Add a new public V8 API to get the hit source lines by CDT CPU profiler.
Note that it's expected a minor patch in Blink to pack the source level info in JSON to be shown.
4.Add a test that checks how the samples are distributed through source lines.
It tests two cases: (1) relocation info created during code generation and (2) relocation info associated with precompiled function's version.
Patch from Denis Pravdin <denis.pravdin@intel.com>
BUG=None
LOG=Y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/616963005
Patch from Denis Pravdin <denis.pravdin@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 09:20:37 +00:00
dcarney@chromium.org
944858e7d5
[turbofan] support all shift operands on x64
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/615223005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 09:08:09 +00:00
dcarney@chromium.org
e9fcaa4be9
[turbofan] support all shift operands on ia32
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/619663002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24387 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 09:04:04 +00:00
bmeurer@chromium.org
5899cc8ca7
[turbofan] Fix lowering of typed loads/stores.
...
We can only access to external typed arrays; lowering of internal
typed arrays would require a map check plus eager deoptimization.
Also embed the array buffer reference directly instead of embedding
the typed array.
TEST=cctest,mjsunit,unittests
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/621863002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 08:38:37 +00:00
machenbach@chromium.org
34bc5595e5
Skip test on all architectures but arm.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/622713003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 08:37:51 +00:00
jochen@chromium.org
d709e6aa13
Change minimum code range size to 3MB
...
There will be at least 2MB of guard pages around allocatable code memory
BUG=none
R=svenpanne@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/617103006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 08:28:29 +00:00
jochen@chromium.org
906d16a750
Update the documentation of Isolate::GetCodeRange
...
On Win64, the first page is reserved for the embedder.
BUG=v8:3597
R=svenpanne@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/619233003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 08:28:04 +00:00
jochen@chromium.org
5f47fe15e2
Remove support for parallel sweeping
...
BUG=none
R=hpayer@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/618323007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 08:24:48 +00:00
yangguo@chromium.org
4f7874e33e
Fix name clashes in cctests.
...
R=marja@chromium.org
Review URL: https://codereview.chromium.org/617123006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 08:18:03 +00:00
hpayer@chromium.org
2bfbe0d862
Fix Windows compile.
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/619853007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 07:42:11 +00:00
hpayer@chromium.org
ad6b41ffa7
Force scavenge in idle notification if we estimate that it will take long.
...
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/583593006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 07:21:53 +00:00
yangguo@chromium.org
43ddad10b3
Handle external strings in the code serializer.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/623453003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 07:12:46 +00:00
yangguo@chromium.org
2134c5c0ba
Fulfill some code serializer related TODOs.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/606083004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 07:04:28 +00:00
yangguo@chromium.org
321dad9b8e
Introduce v8::Object::GetIsolate().
...
API=v8::Object::GetIsolate()
LOG=Y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/617263003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 06:52:39 +00:00
marja@chromium.org
e1a5abb6c8
Debug a mystery crash bug in script streaming.
...
This adds a bunch of checks so we hopefully get more detailed information about
what exactly goes wrong.
R=jochen@chromium.org
BUG=
Review URL: https://codereview.chromium.org/619583005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 16:54:42 +00:00
dusan.milosavljevic@imgtec.com
2b6280a13b
MIPS64: Fix ConvertDToI test.
...
TEST=cctest/test-code-stubs-mips64/ConvertDToI
BUG=
R=paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/616853004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 16:25:01 +00:00
rodolph.perfetta@arm.com
9d3eda079e
[turbofan] re-enable some tests for arm64.
...
Those tests were disabled because of an issue in TruncateDoubleToI which has
been fixed since.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/605253002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 15:47:40 +00:00
yangguo@chromium.org
b84614983f
Attempt to fix GC mole failures.
...
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/614393002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 15:39:12 +00:00
machenbach@chromium.org
c1e462cd64
Whitespace change for branch testing.
...
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 14:10:08 +00:00
mstarzinger@chromium.org
3bc3df9a27
Implement inlined stack-check guards in TurboFan.
...
R=bmeurer@chromium.org
TEST=cctest/test-run-stackcheck/TerminateAtMethodEntry
Review URL: https://codereview.chromium.org/621833003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 14:03:02 +00:00
jkummerow@chromium.org
1bb52d0da8
Fix Hydrogen's BuildStore()
...
BUG=chromium:417508
LOG=y
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/612423002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 13:17:34 +00:00
svenpanne@chromium.org
d6eea5742d
Endian changes, support 64bit big endian
...
These are some changes split off from https://codereview.chromium.org/422063005
frames-inl.h, frames.h
based on 05db7d2d71
On 64bit big endian systems, the integer value is in the second slot, thus we need a new offset.
objects-inl.h, objects.h
based on 09b680b2af
Similarly, the hash slot is an integer field and we need to do the right thing on 64bit big endian systems
objects.cc
based on: 065742b078
Prettier printing of constant pools
test-strings.cc
based on: 9889d60cd6
endian fixes
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/551803004
Patch from Andrew Low <andrew_low@ca.ibm.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 13:14:14 +00:00
dslomov@chromium.org
bedfa9e710
Extract runtime functions for classes into a separate file.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/621833002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 12:11:12 +00:00
jochen@chromium.org
f143e2e024
Fix test-spaces on win64
...
TBR=bmeurer@chromium.org
LOG=n
BUG=none
Review URL: https://codereview.chromium.org/615423002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:54:47 +00:00
yangguo@chromium.org
983205d5fd
Reland "Use symbols instead of hidden properties for i18n markers."
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/618213002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:53:29 +00:00
yangguo@chromium.org
67f43055d2
Fix data race when concurrent compilation is aborted due to dependency change.
...
R=marja@chromium.org
BUG=chromium:419189
LOG=N
Review URL: https://codereview.chromium.org/616263003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:41:19 +00:00
mvstanton@chromium.org
b8288c7535
Don't clear the string stub at gc time in KeyedLoadIC.
...
Clearing this stub doesn't actually make sense, as it neither leaks
memory, nor prevents finding a new optimum stable state. As
long as strings receivers are observed, this is the best stub.
The moment we see a non-string receiver we'll go polymorphic
or generic depending on the case.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/605013003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:09:06 +00:00
bmeurer@chromium.org
b9afcdcefb
[turbofan] Add control input to Load and LoadElements.
...
Also remove the now obsolete ControlEffect operator.
TEST=cctest,mjsunit,unittests
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/620803003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:08:37 +00:00
mstarzinger@chromium.org
4f7eff0a21
Remove deprecated CEntryStub cache in generic lowering.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/619043002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 10:54:51 +00:00
dcarney@chromium.org
b3d426889d
[turbofan] intel lea add multiply matchers
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/614013002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 10:47:14 +00:00
titzer@chromium.org
c1d79db81b
Rename Int32{UMod,UDiv} to Uint32{Div,Mod} and Int64{UMod,UDiv} to Uint64{Div,Mod}.
...
R=bmeurer@chromium.org , mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/620773003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 10:39:11 +00:00
jochen@chromium.org
ef54daf2cc
Fix clang compilation
...
BUG=none
TBR=svenpanne@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/621673003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 09:35:27 +00:00
jochen@chromium.org
524d185116
Don't filter out -O0 for debug configurations
...
BUG=none
R=svenpanne@chromium.org
LOG=n
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 09:17:19 +00:00
jochen@chromium.org
5ed0f2cecc
Reserve a page at the beginning of the code range on Win64 for SEH
...
BUG=v8:3597
R=svenpanne@chromium.org
LOG=n
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 09:16:57 +00:00
jochen@chromium.org
259126c0d9
Remove sweeper threads
...
Job based sweeping is enabled since 3.29, so remove the now obsolete
thread based implementation
BUG=none
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/615933003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 09:16:28 +00:00
bmeurer@chromium.org
26b181f4d0
Fix unittests.gyp for cross compiling.
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/615243003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 08:54:21 +00:00
bmeurer@chromium.org
bfd37ab267
Move unit tests to test/unittests.
...
As per discussion on the V8 team, this is the place we want them to live,
not following the Chrome Style Guide for this.
BUG=v8:3489
LOG=y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/615393002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 08:34:25 +00:00
yangguo@chromium.org
cc6fe3a988
Fix ostream flushing.
...
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/616293002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 08:22:39 +00:00
mstarzinger@chromium.org
c3a2c5740e
Add support for uint64 compares to TurboFan.
...
R=bmeurer@chromium.org , titzer@chromium.org
TEST=compiler-unittests/MachineOperatorTest
Review URL: https://codereview.chromium.org/615083002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 08:11:56 +00:00
bmeurer@chromium.org
67383fe700
[turbofan] Add BoundsCheckMode to ElementAccess.
...
This is currently only used for StoreElement. LoadElement will be
updated to make use of that in a follow-up CL (depends on additional
control input for loads first).
TEST=cctest,mjsunit
R=jarin@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/617853002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 07:42:54 +00:00
yangguo@chromium.org
63851465f2
Revert "Use symbols instead of hidden properties for i18n markers."
...
This reverts r24345.
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/618123005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 07:33:53 +00:00
yangguo@chromium.org
153ec0329e
Use symbols instead of hidden properties for i18n markers.
...
Also refactor symbols in the root list.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/614083002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 07:08:39 +00:00
svenpanne@chromium.org
356d668d8f
Changes to ALLOW_UNUSED to match upcoming changes to the Chromium trunk:
...
* Eliminate usage of ALLOW_UNUSED to define COMPILE_ASSERT and just use
static_assert() in all cases now that all platforms build with C++11.
* Convert remaining uses of ALLOW_UNUSED to ALLOW_UNUSED_TYPE to match how
Chromium will be splitting this functionality. (In Chromium we'll have both
ALLOW_UNUSED_TYPE and ALLOW_UNUSED_LOCAL, which have different syntax to
enable us to use these with MSVC.)
BUG=chromium:81439
TEST=none
LOG=y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/613143004
Patch from Peter Kasting <pkasting@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 06:32:05 +00:00
paul.lind@imgtec.com
1659197f5d
MIPS: Add cvt_d_s to disassembler.
...
BUG=
R=dusan.milosavljevic@imgtec.com
Review URL: https://codereview.chromium.org/605113002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 04:14:01 +00:00
dslomov@chromium.org
953af8bd9f
Desugar 'super(..)' into 'super.constructor(...)'
...
R=arv@chromium.org , marja@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/615043002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 18:12:22 +00:00
yangguo@chromium.org
21d8692c4f
Remove stray edits in r24335.
...
TBR=aandrey@chromium.org
Review URL: https://codereview.chromium.org/615053002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 15:40:08 +00:00
dslomov@chromium.org
1f2ff657cd
Fix style nits in test
...
R=arv@chromium.org
Review URL: https://codereview.chromium.org/613253002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 15:30:10 +00:00
yangguo@chromium.org
e68e62c891
Introduce PromiseRejectCallback.
...
R=aandrey@chromium.org , yurys@chromium.org , rossberg@chromium.org
API=v8::Isolate::SetPromiseRejectCallback, v8::Promise::HasHandler
LOG=Y
BUG=v8:3093
Review URL: https://codereview.chromium.org/600723005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 15:29:08 +00:00