jochen@chromium.org
be69c78e6d
Fix data race on Debug::thread_local_.current_debug_scope_
...
BUG=v8:3614
R=yangguo@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/631223004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 16:11:31 +00:00
jochen@chromium.org
5a6f37c77e
Fix compilation on win64
...
TBR=bmeurer@chromium.org
LOG=n
BUG=none
Review URL: https://codereview.chromium.org/613093004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 16:00:44 +00:00
jochen@chromium.org
7f61f657ce
Fix data race on CpuProfiler::running_
...
BUG=v8:3613
R=yangguo@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/632313002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 14:45:17 +00:00
ishell@chromium.org
2c30ec5f65
Fix for assertion failures appeared after StoreTransitionStub implementation.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/637553002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 14:32:19 +00:00
bmeurer@chromium.org
a17289f4bc
[turbofan] Drop broken StaticParameterTraits.
...
The StaticParameterTraits are broken by design, and cause way too much
trouble. The compilers usually pick the wrong specialization (i.e. the
default specialization is picked for Load and Phi even tho there is a
specialization for MachineType), which is not only the reason why GVN is
ineffective and slow, but can also lead to correctness issues in some
rare cases.
Also clean up some minor bugs/inconsistencies on the way.
TEST=cctest,unittests
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/636893002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 13:30:28 +00:00
jochen@chromium.org
304d91d2a7
Remove PersistentBase::ClearAndLeak
...
Embedders that used this method to be able to store a Persistent in a
container should use one of the containers in v8-util.h instead.
Other uses are no longer supported.
BUG=none
R=dcarney@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/635513002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 12:37:27 +00:00
dslomov@chromium.org
5e21a9723b
Add classes-related bailout reasons to DONT_TURBOFAN_NODE
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/636883002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 12:35:06 +00:00
titzer@chromium.org
fabb14e87f
Fix bugs in lowering NumberToInt32.
...
The backward propagation was different in the lowering phase versus the propagation phase, leading to some missing truncations.
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/638533002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 12:18:39 +00:00
svenpanne@chromium.org
f647ed7bfd
Do not save/restore AST id generator.
...
AST ids only need to be unique, so there is no need to fiddle around with them.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/633053002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 12:16:28 +00:00
yangguo@chromium.org
ec871585fc
Add stack trace to the promise reject callback.
...
R=aandrey@chromium.org
BUG=chromium:393913
LOG=N
Review URL: https://codereview.chromium.org/630373003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 12:03:55 +00:00
machenbach@chromium.org
81b422931f
Add tag write access to merge script.
...
The script will poll the remote branch until the git updater
has replicated the commit to tag. The tag will then be
directly pushed to git.
BUG=chromium:410721
LOG=n
TEST=script_test.py
R=agable@chromium.org , tandrii@chromium.org
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/607893004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 10:46:04 +00:00
jochen@chromium.org
ff51fa0691
Remove unnecessary isolate TLS from compiler jobs
...
BUG=none
R=yangguo@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/632903003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 09:54:18 +00:00
wingo@igalia.com
1888b8f10d
Clean up manual bit field usage in PreParserExpression
...
Instead of using an integer value and manual bit-fiddling, use C++'s
support for specifying bit sizes for integral types. This way the bits
used to describe a PreParserExpression are handled by the compiler.
BUG=
LOG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/422363002
Patch from Adrian Perez <aperez@igalia.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 09:20:08 +00:00
svenpanne@chromium.org
ac1224eafd
Fixed compilation with older clang versions.
...
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/638523002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 09:04:39 +00:00
bmeurer@chromium.org
0a6e406927
Further improve hashing of pointers and integers.
...
Also make sure that the appropriate functions are inlined properly
(using V8_INLINE instead of inline to enforce it even with GCC),
and improve the HashIsOkish unittest.
TEST=unittests
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/635733002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 07:39:19 +00:00
bmeurer@chromium.org
e3294b1f09
[turbofan] Fix lowering of typed loads/stores.
...
Only JSLoadProperty/JSStoreProperty nodes with external typed arrays can
be lowered to LoadElement/StoreElement, because lowering of non-external
typed arrays would require a map check.
TEST=cctest,unittests,mjsunit
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/631093003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 07:36:21 +00:00
jochen@chromium.org
40a1f82238
Introduce --job-based-recompilation flag
...
The implementation is not yet complete, it doesn't support blocking yet,
and doesn't collect statistics.
This things will be fixed in follow-up CLs.
BUG=v8:3608
R=yangguo@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/620093003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 07:29:24 +00:00
titzer@chromium.org
f98b7ecd4b
Remove extraneous line from CompareWrapper test
...
On platforms without TurboFan (PowerPC) the CompareWrapper test was
failing. It appears the line
RawMachineAssemblerTester<int32_t> m;
was causing the issue, and does not appear to be required for the
test to operate correctly. Removing it resolves the crash on non
TurboFan platforms
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/618043002
Patch from Andrew Low <andrew_low@ca.ibm.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 16:26:25 +00:00
erikcorry@chromium.org
d0dc7fc4da
Reland: Add a use counter for Intl.v8BreakIterator
...
This relands https://codereview.chromium.org/619913002/
The test has been fixed to do a GC so it does not appear to leak in
ASAN. In addition the test has been fixed to work in the no-i18n
build, by incorporating the change from https://codereview.chromium.org/631743002/
R=ishell@chromium.org
BUG=
Review URL: https://codereview.chromium.org/628223002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:50:40 +00:00
balazs.kilvady@imgtec.com
041c80e774
MIPS: Support for super keyed loads where key is a name.
...
Port r24403 (891eb62)
BUG=v8:3330
LOG=N
R=dusan.milosavljevic@imgtec.com
Review URL: https://codereview.chromium.org/630003002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:48:56 +00:00
arv@chromium.org
6708f664a9
Stage ES6 numeric literals
...
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/626153002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:40:55 +00:00
bmeurer@chromium.org
03255440de
Don't use identity as hash function for integers.
...
Also slightly improve hashing of floats/doubles.
TEST=unittests
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/632713002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:23:59 +00:00
machenbach@chromium.org
711218bc07
Make asan and lsan make flags work like on the bots.
...
BUG=
R=ishell@chromium.org , jkummerow@chromium.org
Review URL: https://codereview.chromium.org/631763003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:21:37 +00:00
dcarney@chromium.org
e7a635c853
[turbofan] fix vreg mapping for instruction selector tests
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/636543002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 14:30:55 +00:00
jkummerow@chromium.org
b6f82c734c
Remove FLAG_opt_safe_uint32_operations.
...
It has been turned on by default for a long time, and hydrogenized BinaryOpStubs actually depend on it being turned on.
BUG=v8:3487
LOG=n
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/630023002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 13:15:23 +00:00
dcarney@chromium.org
eb00c5301a
[turbofan] map vregs early
...
R=bmeurer@chromium.org , jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/623313003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 13:03:04 +00:00
svenpanne@chromium.org
0a95f8982c
Squeeze the layout of variable proxy nodes.
...
Around 200MB less peak memory usage in the bug mentioned below.
BUG=417697
LOG=y
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/629983002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 12:56:11 +00:00
bmeurer@chromium.org
9440b885ae
Add C++11 compatible base::hash function object.
...
Implement NodeCache in terms of base::hash and std::equal_to in preparation
for HeapConstant caching.
TEST=cctest,unittests
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/624153003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 12:27:24 +00:00
rmcilroy@chromium.org
7cbe1ef9ca
Add MonotonicallyIncreasingTime to V8 Platform.
...
Adds a MonotonicallyIncreasingTime() function to the Platform API to enable the
embedder to provide a time API to V8 which will be used for IdleNotification deadlines.
BUG=417668
LOG=Y
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/632663002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 12:22:25 +00:00
ulan@chromium.org
de51833695
Fix representation of HLoadRoot.
...
HLoadRoot doesn't participate in representation inference, and its
represenation is not Tagged at code generation, which leads to incorrect
pointer map assignment and eventual stale pointer access after GC.
BUG=chromium:419036
LOG=Y
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/626383003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 11:42:13 +00:00
erikcorry@chromium.org
33da50f2ea
Revert Add a use counter for Intl.v8BreakIterator https://codereview.chromium.org/619913002/
...
This is due to breakage on the ASAN memory leak bot, possibly due to
pre-existing leaks in v8BreakIterator().
R=ishell@chromium.org
BUG=
Review URL: https://codereview.chromium.org/636493004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 11:14:50 +00:00
jochen@chromium.org
548428d955
Make V8 compile with Win64 dbg
...
BUG=chromium:420538
R=dcarney@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/634493002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 10:46:15 +00:00
m.m.capewell@googlemail.com
b662e754ae
[turbofan] Negated immediates for ARM64 add/sub
...
Add ARM64 instruction selector support for negating the sense of an arithmetic
instruction when its immediate is negative.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/610323004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 10:39:23 +00:00
jarin@chromium.org
f40d582cf1
Revert "[turbofan] Fix lowering of typed loads/stores."
...
This reverts commit r24386 for tanking asm.js benchmarks.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/634473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 08:54:24 +00:00
svenpanne@chromium.org
560659e321
Test C++11 features on *all* platforms.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/630773002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 08:53:48 +00:00
svenpanne@chromium.org
f33d033725
Unbreak PNaCL build
...
Forgot to add a file...
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/634463002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 08:26:29 +00:00
dslomov@chromium.org
da86ab5d23
Support for super keyed loads where key is a name.
...
R=arv@chromium.org , ishell@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/622523004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 08:25:27 +00:00
svenpanne@chromium.org
955876b5f3
Use the pnacl-clang toolchain for (P)NaCL builds
...
Patch from JF Bastien <jfb@google.com>.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/631703002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 08:10:50 +00:00
yangguo@chromium.org
4733718dd1
Extend snapshot creation to generate 4-byte values
...
R=rmcilroy@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/623993002
Patch from Andre Baixo <baixo@google.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-04 10:30:24 +00:00
erikcorry@chromium.org
43257b61ae
Add a use counter for Intl.v8BreakIterator
...
R=marja@chromium.org
BUG=
Review URL: https://codereview.chromium.org/619913002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-03 10:29:12 +00:00
paul.lind@imgtec.com
f9b39f29fb
MIPS: Add turbofan support for mips32.
...
BUG=
R=bmeurer@chromium.org , dusan.milosavljevic@imgtec.com
Review URL: https://codereview.chromium.org/601723002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 15:48:48 +00:00
svenpanne@chromium.org
e2ed242385
Removed the Isolate* field from literal nodes.
...
Again 50MB less peak memory usage in the bug mentioned below...
BUG=417697
LOG=y
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/620113002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 13:05:11 +00:00
dcarney@chromium.org
c9c4b931f0
fix imul(reg, op, imm) emission on x64
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/619903005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 12:22:36 +00:00
yurys@chromium.org
08c40baa1f
Revert of Extend CPU profiler with mapping ticks to source lines (patchset #3 id:40001 of https://codereview.chromium.org/616963005/ )
...
Reason for revert:
It broke layout test fast/events/window-onerror-02.html, error column reported by window.onerror is now wrong (I believe it is because of the change in full-codegen):
http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/652
Original issue's description:
> 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
>
> Committed: https://code.google.com/p/v8/source/detail?r=24389
TBR=svenpanne@chromium.org ,danno@chromium.org,alph@chromium.org,denis.pravdin@intel.com,weiliang.lin@intel.com
BUG=None
LOG=N
Review URL: https://codereview.chromium.org/624443005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 11:58:21 +00:00
svenpanne@chromium.org
53454d95d0
Squeeze the layout of expression nodes a bit.
...
Again 112MB less peak memory usage in the bug mentioned below. :-)
Routed all writes to to_boolean_types_ through its setter on the way.
BUG=417697
LOG=y
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/615423006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 11:52:54 +00:00
jkummerow@chromium.org
8d283eddc0
Drop some unused code
...
Bonus: fix bitrot in (disabled) Hydrogen-BCH
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/623513002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 10:52:12 +00:00
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