aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/skyframe/BuildingState.java
Commit message (Collapse)AuthorAge
* Remove reverse deps lazily, only when the node has finished building and we ↵Gravatar Janak Ramakrishnan2016-05-17
| | | | | | | | | | | discover that it no longer has certain deps. In the common case, where a node's deps do not change in the end, this reduces lock contention and CPU. The downside of this is that we now create a set of the previous reverse deps during each evaluation of a node. We don't store this set in order to conserve memory, so we pay for it in CPU. We will probably only construct it two or three times (most SkyFunctions don't have so many groups), so the cost shouldn't be so high, but we can try to mitigate if it shows up in profiling. -- MOS_MIGRATED_REVID=122566267
* Stop converting temporary direct deps to a set. In almost all cases, this ↵Gravatar Janak Ramakrishnan2016-05-16
| | | | | | | conversion is unnecessary and wasteful. In the remaining cases, the set conversion can be explicit. -- MOS_MIGRATED_REVID=122294939
* Add random-access indexing into GroupedList. Intended to be a no-op, ↵Gravatar Janak Ramakrishnan2016-04-28
| | | | | | | allowing for future work that may want to access a particular group in the GroupedList without advancing the iterator. -- MOS_MIGRATED_REVID=120933039
* Don't check direct deps when doing change pruning. Since dependents of a ↵Gravatar Janak Ramakrishnan2016-02-09
| | | | | | | node don't have access to its dependencies ("grandparents don't know grandchildren", or vice versa, depending on your point of view), changes to a node's dependencies can't affect downstream nodes. -- MOS_MIGRATED_REVID=114143894
* Use Bazel Preconditions variant which avoids varargs array creationGravatar Mark Schaller2015-12-10
| | | | | | | Reduces garbage. -- MOS_MIGRATED_REVID=109914243
* Avoid list copy in BuildingState.getNextDirtyDirectDepsGravatar Mark Schaller2015-12-09
| | | | | | | | | Also, in GroupedList, short-circuit expensive group equality check with a reference check, saving time and garbage when groups are the same object. -- MOS_MIGRATED_REVID=109795332
* Avoid low-value boxing of ints in BuildingStateGravatar Mark Schaller2015-11-30
| | | | | | | Reduces garbage. -- MOS_MIGRATED_REVID=108977813
* Avoid extra rdeps copy when finishing nodeGravatar Mark Schaller2015-11-24
| | | | | | | Reduces garbage and wasted work -- MOS_MIGRATED_REVID=108566164
* Extract ReverseDepsUtil interface so that InMemoryNodeEntry can be partially ↵Gravatar Janak Ramakrishnan2015-11-24
| | | | | | | isolated from implementation details. -- MOS_MIGRATED_REVID=108523104
* Allow SkyValues to be marked not "comparable". Such values are not compared ↵Gravatar Eric Fellheimer2015-11-19
| | | | | | | for the purpose of change pruning. -- MOS_MIGRATED_REVID=108203369
* Increase visibility of BuildingState methodGravatar Mark Schaller2015-10-22
| | | | | -- MOS_MIGRATED_REVID=106004898
* Delay additions as well as removals of reverse deps. Now that removals are ↵Gravatar Janak Ramakrishnan2015-10-12
| | | | | | | | | | | not all done during invalidation, repeated adding/removing means that we are consolidating more often, negating the benefit of delayed removals. To work around this, delay adds as well until we consolidate and verify the integrity of our data. Since there is no well-defined point that a consolidation should trigger for a done node, we delay until our pending list is as large as the done list. We can tweak this if necessary for a memory/performance tradeoff. The alternative to this that I could think of is giving up our strong integrity checks, which I'm not a fan of. -- MOS_MIGRATED_REVID=105095886
* Simplify buildingState check in markCleanGravatar Mark Schaller2015-09-30
| | | | | | | The value getting checked was the same as the value it was compared to. -- MOS_MIGRATED_REVID=104144544
* Rationalize copyright headersGravatar Damien Martin-Guillerez2015-09-25
| | | | | | | | | | | The headers were modified with `find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'` And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan. The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand. -- MOS_MIGRATED_REVID=103938715
* Don't remove reverse deps until node is known to be changed. This helps ↵Gravatar Janak Ramakrishnan2015-09-23
| | | | | | | avoid mutating the deps of nodes that are still going to be deps after evaluation is finished. -- MOS_MIGRATED_REVID=103659429
* Don't use null as a flag when iterating over dirty direct deps. Whether or ↵Gravatar Janak Ramakrishnan2015-09-03
| | | | | | | | | not the iterator has more elements is a perfectly good signal. Also put the reference hash code into the string representation for use in debugging. -- MOS_MIGRATED_REVID=102264568
* Modify BuildingState to allow for alternative implementations.Gravatar Janak Ramakrishnan2015-08-04
| | | | | -- MOS_MIGRATED_REVID=99747336
* Replaced other occurrences of Objects#toStringHelper with ↵Gravatar Googler2015-07-17
| | | | | | | MoreObjects#toStringHelper -- MOS_MIGRATED_REVID=98383075
* Confusing method description elaborated upon a little bit.Gravatar Googler2015-06-01
| | | | | -- MOS_MIGRATED_REVID=94910185
* Change getBatch signature from Set to Iterable since Iterable is all that's ↵Gravatar Janak Ramakrishnan2015-04-30
| | | | | | | needed. Also clean up some lint warnings/unresolved references. -- MOS_MIGRATED_REVID=92380618
* Revert the recent changes that made some skyframe-internal data structures ↵Gravatar Nathan Harmata2015-03-10
| | | | | | | serializable; alternative graph implementations no longer need these. -- MOS_MIGRATED_REVID=88003503
* Description redacted.Gravatar Nathan Harmata2015-02-24
| | | | | -- MOS_MIGRATED_REVID=87009938
* Refactor NodeEntry to be an interface.Gravatar Nathan Harmata2015-02-10
| | | | | -- MOS_MIGRATED_REVID=85946859
* Mark some skyframe-internal data structures as being Serializable.Gravatar Nathan Harmata2015-02-10
| | | | | -- MOS_MIGRATED_REVID=85945243
* Update from Google.Gravatar Han-Wen Nienhuys2015-02-25
-- MOE_MIGRATED_REVID=85702957