verwaest
16c8485a35
Remove PropertyCell space
...
Replaces StoreGlobalCell / LoadGlobalCell with NamedField variants that use write barriers.
BUG=
Review URL: https://codereview.chromium.org/1016803002
Cr-Commit-Position: refs/heads/master@{#27269}
2015-03-18 11:43:58 +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
bmeurer@chromium.org
30f18f0f7d
Use Chrome compatible naming for compiler specifics.
...
Less useless creativity is best creativity!
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/526223002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 07:07:52 +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
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
svenpanne@chromium.org
d7934d1fbe
Start using OStreams.
...
Note that until everything is OStream-based, there are a few places
where we have to do some impedance matching. A few accessors had to be
const-corrected on the way.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/334763003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-03 07:18:30 +00:00
jochen@chromium.org
a4506cd3f2
Move platform abstraction to base library
...
Also split v8-core independent methods from checks.h to base/logging.h and
merge v8checks with the rest of checks.
The CPU::FlushICache method is moved to CpuFeatures::FlushICache
RoundUp and related methods are moved to base/macros.h
Remove all layering violations from src/libplatform
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/358363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 13:25:46 +00:00
bmeurer@chromium.org
4642c2e18c
Revert "GVN fix, preventing loads hoisting above stores to the same field when HObjectAccess's representation is not the same."
...
This reverts commit r21830 for tanking performance on Deltablue.
TBR=ishell@chromium.org
Review URL: https://codereview.chromium.org/336223002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 13:03:59 +00:00
ishell@chromium.org
41e9d916c4
GVN fix, preventing loads hoisting above stores to the same field when HObjectAccess's representation is not the same.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/331493006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 07:51:45 +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
jochen@chromium.org
84e078e561
Reland 21502 - "Move OS::MemCopy and OS::MemMove out of platform to utils"
...
Verified that arm builds locally.
BUG=none
TBR=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/306473004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 07:57:22 +00:00
jochen@chromium.org
eabd5a19b9
Revert 21502 - "Move OS::MemCopy and OS::MemMove out of platform to utils"
...
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/297303004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-26 19:56:27 +00:00
jochen@chromium.org
a5a21a0da4
Move OS::MemCopy and OS::MemMove out of platform to utils
...
Since both are jitted on some platforms and depend on codegen, they
don't belong to the platform abstraction. At the same time, I can't put
them to codegen.h, as this would introduce cyclic dependencies.
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/302563004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-26 19:33:15 +00:00
danno@chromium.org
71789ea1e5
Reland r20974: Unify and simplify the FastCloneShallowArrayStub
...
- Don't bake in length/capacity into full codegen calls of stubs,
allowing boilerplates to increase their capacity without regenerating
code.
- Unify all variants of the clone stub into a single,
length-independent version.
- Various tweaks to make sure that the clone stub doesn't spill and
therefore need an eager stack frame.
- Handle all lengths of array literals in the fast case.
R=mvstanton@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=21230
Review URL: https://codereview.chromium.org/272513004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-12 07:49:11 +00:00
verwaest@chromium.org
c33a72b27f
Revert "Reland r20974: Unify and simplify the FastCloneShallowArrayStub"
...
This breaks nosnap.
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/272243002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-09 17:56:55 +00:00
danno@chromium.org
36fc96a4b8
Reland r20974: Unify and simplify the FastCloneShallowArrayStub
...
- Don't bake in length/capacity into full codegen calls of stubs,
allowing boilerplates to increase their capacity without regenerating
code.
- Unify all variants of the clone stub into a single,
length-independent version.
- Various tweaks to make sure that the clone stub doesn't spill and
therefore need an eager stack frame.
- Handle all lengths of array literals in the fast case.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/272513004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-09 15:55:45 +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
bmeurer@chromium.org
62054826d8
Revert "Really skip dead blocks in GVN"
...
This reverts commit r19779 for breaking the GVN algorithm.
BUG=352149
LOG=y
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/200223004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 12:05:01 +00:00
bmeurer@chromium.org
a7ead16719
Really skip dead blocks in GVN
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/194413002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19779 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 08:14:38 +00:00
bmeurer@chromium.org
137249916f
Track global cells as special side effects in GVN.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/188543004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 10:14:03 +00:00
bmeurer@chromium.org
a5ef6e5eec
Improve inobject field tracking during GVN.
...
Now stores to inobject fields do no longer prevent hoisting
and combining of loads from other inobject fields.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/144423010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-11 06:53:14 +00:00
bmeurer@chromium.org
40f3b1ba87
Revert "Improve inobject field tracking during GVN."
...
This reverts commit r19427 for breaking the build. Will reland with
fix.
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/143203005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-11 06:46:14 +00:00
bmeurer@chromium.org
cd1b7df638
Improve inobject field tracking during GVN.
...
Now stores to inobject fields do no longer prevent hoisting
and combining of loads from other inobject fields.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/144423010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-11 06:41:06 +00:00
bmeurer@chromium.org
e05dbf4e22
Drop unused accumulated first time changes/depends.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/135503004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-10 08:59:51 +00:00
bmeurer@chromium.org
eee40ea690
Fix printing of GVN flags.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/142253003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-07 08:59:20 +00:00
bmeurer@chromium.org
e14463e07e
Cosmetic cleanup for GVN.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/153563006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-06 12:35:17 +00:00
bmeurer@chromium.org
e02a9d5361
Reduce memory usage due to fixpoint iteration of GVN.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/153533003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-06 09:54:59 +00:00
hpayer@chromium.org
d2a2f83574
Perform a fix point iteration for GVN.
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/149573014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-05 17:21:34 +00:00
yurys@chromium.org
cd5ea74700
Replace 'operator*' with explicit 'get' method on SmartPointer
...
Made operator* return reference to the raw type, not pointer. New method 'get()' should be used when raw pointer is needed.
Also removed useless inline modifier from the SmaprtPointer methods and added const modifier to the methods that don't change smart pointer.
Made ~SmartPointerBase protected to avoid accidental calls of the non-virtual base class's destructor.
drive-by: fixed use after free in src/factory.cc
BUG=None
LOG=N
R=alph@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/101763003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-09 07:41:20 +00:00
verwaest@chromium.org
8a4df124a4
Fix loop side-effects of deoptimizing loops with a nested live OSR loop.
...
R=titzer@chromium.org
Review URL: https://chromiumcodereview.appspot.com/106723002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-05 18:31:06 +00:00
bmeurer@chromium.org
0112cb28e7
Another fix for windows breakage after r17521.
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/61953002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 13:42:00 +00:00
danno@chromium.org
908a7dc2a8
Improve and simplify removal of unreachable code
...
- Detect unreachable basic blocks of code either following an unconditional deopt or after a provably untaken branch of HBranch or HCompareObjectEqAndBranch instructions.
- Emit dummy uses in unreachable blocks during Hydrogen -> Lithium translation.
BUG=chromium:258519
R=jkummerow@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22876009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-02 11:43:41 +00:00
danno@chromium.org
8cbbdd066c
Unify SoftDeoptimize and Deoptimize hydrogen instructions
...
BUG=chromium:258519
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/19528003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:35:10 +00:00
mstarzinger@chromium.org
f8f5be2366
Minor cleanup of GVN state pushing.
...
R=hpayer@chromium.org , hpayer@google.com
Review URL: https://codereview.chromium.org/19235010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 08:37:49 +00:00
bmeurer@chromium.org
c0637c1828
Use BitVector instead of handcrafted SparseSet.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19272011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 07:07:04 +00:00
hpayer@chromium.org
38a87d2c4a
Revert r15649 and fix for loop dominator propagation in GVN.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19233002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 16:58:20 +00:00
hpayer@chromium.org
f5ab1b2a4a
Collect side effects on paths to dominated block including the dominator.
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18254008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-12 15:06:50 +00:00
hpayer@chromium.org
99d541a486
Allocation folding integrated into the GVN phase.
...
BUG=
R=mstarzinger@chromium.org , titzer@chromium.org
Review URL: https://codereview.chromium.org/18596005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:41:33 +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
mstarzinger@chromium.org
c28a6c9ea2
Use HInstructionIterator more broadly for hydrogen.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/18068002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 16:31:11 +00:00
bmeurer@chromium.org
98786ae073
Refactor Hydrogen GVN into an HPhase and use the phase zone.
...
The HGlobalValueNumberer class is renamed to HGlobalValueNumberingPhase,
following the naming scheme suggested by danno@chromium.org in
https://codereview.chromium.org/17458002
The GVN phase now uses the phase zone for all its allocations.
Depends upon https://codereview.chromium.org/18022002
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17657004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 13:09:08 +00:00
bmeurer@chromium.org
9e0f0a73dc
Get rid of ZoneScope completely.
...
There's no need to differentiate between an actual Zone and its
scope. Instead we bind the lifetime of the Zone memory to the
lifetime of the Zone itself, which is way easier to understand
than having to dig through the code looking for zone scopes.
Depends on https://codereview.chromium.org/17826004/
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17827005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 13:36:16 +00:00
bmeurer@chromium.org
8e9b934e7e
Get rid of the ZoneScopeMode.
...
No one is using the DONT_DELETE_ON_EXIT mode for ZoneScopes anymore, so
we can safely assume that all ZoneScopes are DELETE_ON_EXIT now.
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17826004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 12:54:12 +00:00
bmeurer@chromium.org
13a7c993d0
Add phase zone to CompilationInfo and use it in GVN pass.
...
The phase_zone of CompilationInfo is intended for local allocations that
are freed at the end of the phase.
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17573003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 13:37:46 +00:00
yangguo@chromium.org
7f8a3d803c
Make assertion scopes thread safe.
...
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/15691017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-03 15:32:22 +00:00
titzer@chromium.org
0a4289618d
Extract GlobalValueNumberer and helper classes from hydrogen.cc and move to hydrogen-gvn.cc.
...
BUG=
Review URL: https://codereview.chromium.org/16095004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-27 12:45:46 +00:00