Home | History | Annotate | Download | only in Instrumentation

Lines Matching refs:dag

11 // profiling converts the CFG into a DAG by replacing backedges with edges
13 // along the new DAG are enumrated, i.e. each path is given a path number.
20 // requirements are formatting the llvm CFG into the Ball-Larus DAG, path
25 // DAG - Directed Acyclic Graph.
26 // Ball-Larus DAG - A CFG with an entry node, an exit node, and backedges
30 // Ball-Larus DAG.
194 // Calculates a spanning tree of the DAG ignoring cycles. Whichever
315 BLInstrumentationDag* dag,
331 BLInstrumentationDag* dag);
335 bool splitCritical(BLInstrumentationEdge* edge, BLInstrumentationDag* dag);
337 // Inserts instrumentation according to the marked edges in dag. Phony
338 // edges must be unlinked from the DAG, but accessible from the
339 // backedges. Dag must have initializations, path number increments, and
343 void insertInstrumentation( BLInstrumentationDag& dag, Module &M);
359 cl::desc("Output the path profiling DAG for each function."));
502 // BLInstrumentationDag constructor initializes a DAG for the given Function.
574 // Calculates a spanning tree of the DAG ignoring cycles. Whichever
664 // Generate a .dot graph to represent the DAG and pathNumbers
1022 BLInstrumentationDag* dag,
1025 if( dag->getNumberOfPaths() <= HASH_THRESHHOLD ) {
1032 GetElementPtrInst::Create(dag->getCounterArray(), gepIndices,
1079 BLInstrumentationDag* dag) {
1085 splitCritical(edge, dag);
1156 insertPoint, dag);
1166 instrumentNode->getBlock()->getTerminator(),dag);
1194 insertPoint, dag);
1208 insertInstrumentationStartingAt((BLInstrumentationEdge*)*next,dag);
1215 // Inserts instrumentation according to the marked edges in dag. Phony edges
1216 // must be unlinked from the DAG, but accessible from the backedges. Dag
1222 BLInstrumentationDag& dag, Module &M) {
1225 (BLInstrumentationEdge*) dag.getExitRootEdge();
1226 insertInstrumentationStartingAt(exitRootEdge, &dag);
1230 BLEdgeVector callEdges = dag.getCallPhonyEdges();
1261 insertCounterIncrement(newpn, insertPoint, &dag);
1263 &dag, false);
1270 // Build DAG from CFG
1271 BLInstrumentationDag dag = BLInstrumentationDag(F);
1272 dag.init();
1275 dag.calculatePathNumbers();
1279 dag.calculateSpanningTree();
1280 dag.calculateChordIncrements();
1281 dag.pushInitialization();
1282 dag.pushCounters();
1283 dag.unlinkPhony();
1285 // potentially generate .dot graph for the dag
1287 dag.generateDotGraph ();
1290 if( dag.getNumberOfPaths() <= HASH_THRESHHOLD ) {
1292 dag.getNumberOfPaths());
1294 dag.setCounterArray(new GlobalVariable(M, t, false,
1299 insertInstrumentation(dag, M);
1305 if( dag.getNumberOfPaths() <= HASH_THRESHHOLD )
1312 entryArray[1] = createIncrementConstant(dag.getNumberOfPaths(),32);
1313 entryArray[2] = dag.getCounterArray() ?
1314 ConstantExpr::getBitCast(dag.getCounterArray(), voidPtr) :
1403 BLInstrumentationDag* dag) {
1420 dag->splitUpdate(edge, newBlock);