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.
195 // Calculates a spanning tree of the DAG ignoring cycles. Whichever
316 BLInstrumentationDag* dag,
332 BLInstrumentationDag* dag);
336 bool splitCritical(BLInstrumentationEdge* edge, BLInstrumentationDag* dag);
338 // Inserts instrumentation according to the marked edges in dag. Phony
339 // edges must be unlinked from the DAG, but accessible from the
340 // backedges. Dag must have initializations, path number increments, and
344 void insertInstrumentation( BLInstrumentationDag& dag, Module &M);
360 cl::desc("Output the path profiling DAG for each function."));
503 // BLInstrumentationDag constructor initializes a DAG for the given Function.
575 // Calculates a spanning tree of the DAG ignoring cycles. Whichever
665 // Generate a .dot graph to represent the DAG and pathNumbers
1023 BLInstrumentationDag* dag,
1026 if( dag->getNumberOfPaths() <= HASH_THRESHHOLD ) {
1033 GetElementPtrInst::Create(dag->getCounterArray(), gepIndices,
1080 BLInstrumentationDag* dag) {
1086 splitCritical(edge, dag);
1157 insertPoint, dag);
1167 instrumentNode->getBlock()->getTerminator(),dag);
1195 insertPoint, dag);
1209 insertInstrumentationStartingAt((BLInstrumentationEdge*)*next,dag);
1216 // Inserts instrumentation according to the marked edges in dag. Phony edges
1217 // must be unlinked from the DAG, but accessible from the backedges. Dag
1223 BLInstrumentationDag& dag, Module &M) {
1226 (BLInstrumentationEdge*) dag.getExitRootEdge();
1227 insertInstrumentationStartingAt(exitRootEdge, &dag);
1231 BLEdgeVector callEdges = dag.getCallPhonyEdges();
1262 insertCounterIncrement(newpn, insertPoint, &dag);
1264 &dag, false);
1271 // Build DAG from CFG
1272 BLInstrumentationDag dag = BLInstrumentationDag(F);
1273 dag.init();
1276 dag.calculatePathNumbers();
1280 dag.calculateSpanningTree();
1281 dag.calculateChordIncrements();
1282 dag.pushInitialization();
1283 dag.pushCounters();
1284 dag.unlinkPhony();
1286 // potentially generate .dot graph for the dag
1288 dag.generateDotGraph ();
1291 if( dag.getNumberOfPaths() <= HASH_THRESHHOLD ) {
1293 dag.getNumberOfPaths());
1295 dag.setCounterArray(new GlobalVariable(M, t, false,
1300 insertInstrumentation(dag, M);
1306 if( dag.getNumberOfPaths() <= HASH_THRESHHOLD )
1313 entryArray[1] = createIncrementConstant(dag.getNumberOfPaths(),32);
1314 entryArray[2] = dag.getCounterArray() ?
1315 ConstantExpr::getBitCast(dag.getCounterArray(), voidPtr) :
1404 BLInstrumentationDag* dag) {
1421 dag->splitUpdate(edge, newBlock);