MCPcopy Create free account
hub / github.com/SeaOfNodes/Simple / addDep

Method addDep

chapter24/src/main/java/com/seaofnodes/simple/node/Node.java:557–567  ·  view source on GitHub ↗

Add a node to the list of dependencies. Only add it if it's not an input or output of this node, that is, it is at least one step away. The node being added must benefit from this node being peepholed.

( N dep )

Source from the content-addressed store, hash-verified

555 * being added must benefit from this node being peepholed.
556 */
557 <N extends Node> N addDep( N dep ) {
558 // Running peepholes during the big assert cannot have side effects
559 // like adding dependencies.
560 if( CODE._midAssert ) return dep;
561 if( dep._deps==null ) dep._deps = new Ary<>(Node.class);
562 if( dep._deps .find(this) != -1 ) return dep; // Already on list
563 if( dep._inputs .find(this) != -1 ) return dep; // No need for deps on immediate neighbors
564 if( dep._outputs.find(this) != -1 ) return dep;
565 dep._deps.add(this);
566 return dep;
567 }
568
569 // Move the dependents onto a worklist, and clear for future dependents.
570 public void moveDepsToWorklist( ) { moveDepsToWorklist(CODE._iter); }

Callers 15

errMethod · 0.45
computeMethod · 0.45
idealizeMethod · 0.45
computeMethod · 0.45
idealizeMethod · 0.45
same_opMethod · 0.45
singleUniqueInputMethod · 0.45
allConsMethod · 0.45
checkOnlyUseMethod · 0.45
allConsMethod · 0.45
idealizeMethod · 0.45
_idomMethod · 0.45

Calls 2

findMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected