titzer
0f619463f2
[turbofan] First version of loop analysis: loop finder on the soup of nodes.
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/803993002
Cr-Commit-Position: refs/heads/master@{#25837}
2014-12-16 09:36:40 +00:00
vogelheim
efdb6c8de1
Fix builds w/ component=="shared_library" and v8_use_external_startup_data==1.
...
R=machenbach@chromium.org
BUG=
Review URL: https://codereview.chromium.org/794213002
Cr-Commit-Position: refs/heads/master@{#25784}
2014-12-11 16:41:56 +00:00
ishell
7d13ca278a
Reland of "TransitionArray now uses <is_data_property, name, attributes> tuple as a key, which allows to have several entries for the same property name."
...
Review URL: https://codereview.chromium.org/793453004
Cr-Commit-Position: refs/heads/master@{#25750}
2014-12-10 15:18:52 +00:00
titzer
da22163d35
[turbofan] Implement jump threading after register allocation.
...
R=dcarney@chromium.org
BUG=
Review URL: https://codereview.chromium.org/754843002
Cr-Commit-Position: refs/heads/master@{#25521}
2014-11-26 12:41:55 +00:00
yangguo
9b8d40594a
Rip out bzip compression for native sources.
...
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/750543002
Cr-Commit-Position: refs/heads/master@{#25464}
2014-11-21 12:45:20 +00:00
ishell@chromium.org
2e38f33911
Revert "TransitionArray now uses <is_data_property, name, attributes> tuple as a key, which allows to have several entries for the same property name."
...
Revert "Fix for an assertion failure in Map::FindTransitionToField(...). Appeared after r25136."
This revert is made in order to revert r25099 which potentially causes renderer hangs.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/722873004
Cr-Commit-Position: refs/heads/master@{#25332}
2014-11-13 15:31:04 +00:00
titzer@chromium.org
21cf5bb249
Remove PhiReducer.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/684993006
Cr-Commit-Position: refs/heads/master@{#25262}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-11 12:03:12 +00:00
ishell@chromium.org
c5a492961f
Reland "In-object double fields unboxing (for 64-bit only)."
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/711313002
Cr-Commit-Position: refs/heads/master@{#25258}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-11 10:25:46 +00:00
verwaest@chromium.org
2d9079ca1d
Revert "In-object double fields unboxing (for 64-bit only)."
...
Revert "Fixes for Windows and Mac builds after r25250."
TBR=ishell@chromium.org
Review URL: https://codereview.chromium.org/699613004
Cr-Commit-Position: refs/heads/master@{#25252}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 17:44:51 +00:00
ishell@chromium.org
f133ac501b
In-object double fields unboxing (for 64-bit only).
...
This CL introduces LayoutDescriptor which is responsible for tracking which in-object fields are tagged and which are not.
LayoutDescriptor field added to Map. Currently unboxing is disabled.
R=hpayer@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/391693002
Cr-Commit-Position: refs/heads/master@{#25250}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 16:35:22 +00:00
ishell@chromium.org
33dde8d92c
TransitionArray now uses <is_data_property, name, attributes> tuple as a key, which allows to have several entries for the same property name.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/661133002
Cr-Commit-Position: refs/heads/master@{#25136}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 09:26:48 +00:00
titzer@chromium.org
5bba6b20e6
Make visualizer robust to graphs with NULL inputs.
...
R=mstarzinger@chromium.org , jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/652263002
Cr-Commit-Position: refs/heads/master@{#25084}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-03 17:42:17 +00:00
dcarney@chromium.org
3cace296ee
convert BitVector to use pointer size blocks
...
additionally rename data-flow.* to bit-vector.* as at some point these file became very inaccurately named
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/683243005
Cr-Commit-Position: refs/heads/master@{#25030}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-31 10:44:47 +00:00
titzer@chromium.org
90a7f07489
Implement loop variable assignment analysis.
...
This analysis computes the set of variables that are assigned in each loop. This is useful to avoid creating redundant loop phis when building an SSA graph, which just waste memory and require analysis to get rid of.
This CL implements an AST walk for the analysis and plugs the result into the TurboFan graph builder. I left this analysis under a flag for A/B testing and until sufficient unit tests can be developed.
R=danno@chromium.org , mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/656123005
Cr-Commit-Position: refs/heads/master@{#24957}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-28 17:30:14 +00:00
mvstanton@chromium.org
c688ebd858
vector-based ICs did not update type feedback counts correctly.
...
BUG=v8:3605
LOG=N
R=jkummerow@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/650073002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 11:42:56 +00:00
titzer@chromium.org
e4c6f9488e
Implement graph trimming in ControlReducer.
...
Trimming the graph consists of breaking links from nodes that are not reachable from end to nodes that are reachable from end. Such dead nodes show up in the use lists of the live nodes and though mostly harmless, just clutter up the graph. They also can limit instruction selection opportunities, so it is good to get rid of them.
This CL is one half of the ControlReducer functionality, the other half
being branch folding.
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/661923002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-17 11:51:57 +00:00
neis@chromium.org
93d0e79d6e
Again reland "Refine expression typing, esp. by propagating range information."
...
This relands commit 24552.
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/650513003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 08:21:46 +00:00
bmeurer@chromium.org
f574d93e51
Revert "Reland "Refine expression typing, esp. by propagating range information.""
...
This reverts commit r24609 for breaking the
cctest/test-js-typed-lowering/Int32BitwiseBinops test.
TBR=rossberg@chromium.org ,neis@chromium.org
Review URL: https://codereview.chromium.org/656003002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 03:50:13 +00:00
neis@chromium.org
a7eb593147
Reland "Refine expression typing, esp. by propagating range information."
...
This relands commit 24552.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/653693002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 16:27:26 +00:00
neis@chromium.org
a2f4963abd
Revert "Refine expression typing, esp. by propagating range information."
...
This reverts commit 24552.
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/648163002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 10:48:01 +00:00
neis@chromium.org
5a0ff8e656
Refine expression typing, esp. by propagating range information.
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/618803003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 10:40:29 +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
bmeurer@chromium.org
3eebdc3264
Replace OStream with std::ostream.
...
Review URL: https://codereview.chromium.org/618643002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:29:32 +00:00
alph@chromium.org
24d1ef4868
Initial implementation of GetStackSample sampling profiler API.
...
The patch is based on https://codereview.chromium.org/578163002/#ps20001
made by gholap@chromium.org
LOG=N
BUG=v8:3490
R=bmeurer@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/596533002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 12:59:54 +00:00
dcarney@chromium.org
5d0e9a2496
[turbofan] basic block profiler
...
R=titzer@chromium.org , mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/593563005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 07:29:14 +00:00
bmeurer@chromium.org
5042b23b86
[turbofan] Get rid of the StructuredMacroAssembler.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/544053002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 08:48:41 +00:00
mstarzinger@chromium.org
51894ec36c
Move StructuredMachineAssembler into cctest suite.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/539903002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 10:23:51 +00:00
bmeurer@chromium.org
4edcff907f
Refactor libplatform unit tests to use GTest/GMock.
...
Also migrate them to src.
BUG=v8:3489
LOG=n
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/526043002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 07:13:55 +00:00
mstarzinger@chromium.org
cc8cec354c
Preliminary lowering of typed array loads in TF.
...
R=titzer@chromium.org
TEST=cctest/test-run-properties/TypedArrayLoad
Review URL: https://codereview.chromium.org/516853002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 14:35:11 +00:00
titzer@chromium.org
496697df4e
Add MachineSignature, which is an encapsulation of the machine types for parameters and return values in a graph.
...
This utility will be used to simplify Linkage and fix representation inference
to work with graphs where parameters and return values are something other
than tagged. It will also make testing representation inference a lot
easier, since we can then exactly nail down the machine types of parameters
and returns.
This CL also adds c-signature.h, which demonstrates how to convert C function
signatures into MachineSignatures. The CSignatures will be used in tests to
make it easier and simpler to codegen tests.
R=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/515173002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 13:17:38 +00:00
bmeurer@chromium.org
1efe3de965
Migrate test-semaphore to base-unittests.
...
TEST=base-unittests
BUG=v8:3489
LOG=n
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/494343002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-22 08:52:40 +00:00
sigurds@chromium.org
566cdc3bcd
Reland "Add initial support for inlining."
...
Reland Fixes:
* Remove usage of C++11 vector members.
* Guard tests by V8_TURBO_TARGET.
Changes:
* Make context specialization clean up after itself.
* Add UpdateToAndIncrement to Inputs::iterator.
Uses:iterator already provides this member function.
* Allow next node id in graph to be set.
R=titzer@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/484083003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 13:05:03 +00:00
sigurds@chromium.org
b488b2ed29
Revert "Add initial support for inlining."
...
This reverts commit r23197.
TBR=titzer@chromium.org
Review URL: https://codereview.chromium.org/481413002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 12:48:44 +00:00
sigurds@chromium.org
4b943f35cf
Add initial support for inlining.
...
* Add stack depth checking to function tester.
* Make context specialization clean up after itself.
* Add UpdateToAndIncrement to Inputs::iterator.
Uses:iterator already provides this member function.
* Allow next node id in graph to be set.
R=mstarzinger@chromium.org , titzer@chromium.org
Review URL: https://codereview.chromium.org/453833003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 12:23:19 +00:00
bmeurer@chromium.org
f4b5224ae9
[turbofan] Refactor the InstructionSelector tests.
...
Also fix some issues and improve test coverage.
TEST=compiler-unittests
BUG=v8:3489
LOG=y
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/469743002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 06:33:50 +00:00
rodolph.perfetta@arm.com
b5b4e2c0b9
ARM64: unit tests for instruction selection.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/464773004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-13 10:29:22 +00:00
jochen@chromium.org
5f1f897894
Revert 23077 - "Use CommonNodeCache for heap constants in ChangeLowering."
...
Breaks compilation on Mac64
| TEST=compiler-unittests
| R=jarin@chromium.org
|
| Committed: https://code.google.com/p/v8/source/detail?r=23077
TBR=bmeurer@chromium.org ,jarin@chromium.org
LOG=n
BUG=none
Review URL: https://codereview.chromium.org/456843004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 12:53:14 +00:00
bmeurer@chromium.org
dae1e1ea01
Use CommonNodeCache for heap constants in ChangeLowering.
...
TEST=compiler-unittests
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/466673004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 12:37:50 +00:00
rossberg@chromium.org
25b978cbf4
This implements unscopables
...
The unscobables allow us to black list properties from showing up in
with statements.
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object-environment-records-hasbinding-n
The spec draft is not fully up to date.
https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-07/jul-29.md#conclusionresolution
BUG=v8:3401
LOG=Y
R=rossberg@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/384963002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 15:50:40 +00:00
bmeurer@chromium.org
ef17fe7633
Refactor unit tests for the base library to use GTest.
...
TEST=base-unittests
BUG=v8:3489
LOG=y
R=jochen@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/448603002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 09:35:21 +00:00
bmeurer@chromium.org
bbd62e4a20
[turbofan] Improve testability of the InstructionSelector.
...
Allow to pass the set of supported CPU features to
the InstructionSelector, so it can be tested without
messing with the command line flags.
Also add InstructionSelector sample for ia32.
TEST=cctest/test-instruction-selector,cctest/test-instruction-selector-{arm,ia32}
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/441883004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 13:26:55 +00:00
titzer@chromium.org
42fa27187e
TF: Lowering representation changes to machine operators (WIP: need inline allocation for some). Move tests related to lowering representation changes into test-changes-lowering.cc.
...
R=bmeurer@chromium.org , bmeuer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/437583002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-01 08:16:19 +00:00
danno@chromium.org
a1383e2250
Land the Fan (disabled)
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/426233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 13:54:45 +00:00
ernstm@chromium.org
9523e0acf4
re-land: Track history of events in GCTracer.
...
- track incremental marking stats directly on GCTracer.
- add simple ring buffer class.
- track last 10 scavenges and mark-compacts in ring buffers on GCTracer.
- various clean-ups.
This is a re-land of https://codereview.chromium.org/391413006/ with
- int instead of size_t in ring buffer unit test.
- git cl format
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/411293002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 11:16:01 +00:00
machenbach@chromium.org
ea1be613dc
Revert "Track history of events in GCTracer."
...
This reverts commit 22567 for breaking win64 compile.
BUG=
TBR=ernstm@chromium.org
Review URL: https://codereview.chromium.org/414743002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 16:12:02 +00:00
ernstm@chromium.org
462cca2ecb
Track history of events in GCTracer.
...
- track incremental marking stats directly on GCTracer.
- add simple ring buffer class.
- track last 10 scavenges and mark-compacts in ring buffers on GCTracer.
- various clean-ups.
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/391413006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 15:16:53 +00:00
dusan.milosavljevic@rt-rk.com
a0f6878a06
Add mips64 port.
...
Summary:
- Changes in common code are mainly boilerplate changes,
gyp and test status files updates.
- On mips64 simulator all tests pass from all test units.
- Current issues: mjsunit JS debugger tests fail randomly on HW in release mode.
Corresponding tests are skipped on HW.
- Skipped tests on mips64: test-heap/ReleaseOverReservedPages, mjsunit/debug-*
TEST=
BUG=
R=danno@chromium.org , plind44@gmail.com , ulan@chromium.org
Review URL: https://codereview.chromium.org/371923006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 11:08:26 +00:00
jochen@chromium.org
c1231d426f
Add an API to pump the message loop to libplatform
...
BUG=none
LOG=n
R=marja@chromium.org
Review URL: https://codereview.chromium.org/363303002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-03 09:33:36 +00:00
jochen@chromium.org
ca16bb7ae2
Split out libplatform into a separate libary
...
Also remove the "use default platform" compile flag. Instead, the embedder
has to provide the platform.
Change all binaries to use the default platfrom from libplatform.
Unless --job-based-sweeping is passed, nothing uses the platform yet, so
nothing will break for embedders (yet).
BUG=none
R=jkummerow@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/345903004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-03 07:37:27 +00:00
svenpanne@chromium.org
e25f833496
Added slim versions of output streams.
...
R=bmeurer@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/352823003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-27 08:42:17 +00:00