void outputObjectFile() { void outputPartition(); void outputReferenceInfo(); void outputSymbolTableInfo(); void outputAbsoluteCode(); void outputRelocatableCode(); void outputReservations(); void outputExpressions(); void outputFunctions(); void dumpSymbolTable(); void enumerateAndCountSymbols(); if (debug || emitPrint) printCodeBuffers(); outputPartition(); outputAbsoluteCode(); if (produceLinkableObject) { outputPartition(); outputRelocatableCode(); outputPartition(); outputReservations(); outputPartition(); enumerateAndCountSymbols(); outputReferenceInfo(); outputSymbolTableInfo(); outputExpressions(); outputFunctions(); } if (symbolTableDumpOn) dumpSymbolTable(); fclose(objectFileOutput); }
KB5() : vmd::KnowledgeBase(), mNbUpdate(0), mNbAck(0), mNbOut(0) { std::cout << fmt("KB5 start\n"); vmd::Activity& a = addActivity("A", 0.0, vd::infinity); vmd::Activity& b = addActivity("B", 1.0, vd::infinity); vmd::Activity& c = addActivity("C", 1.0, vd::infinity); vmd::Activity& d = addActivity("D", 2.0, vd::infinity); vmd::Activity& e = addActivity("E", 3.0, vd::infinity); vmd::Activity& f = addActivity("F", 4.0, vd::infinity); addOutputFunctions(this) += O("out", &KB5::out); addUpdateFunctions(this) += U("update", &KB5::update); a.addOutputFunction(outputFunctions()["out"]); b.addOutputFunction(outputFunctions()["out"]); c.addOutputFunction(outputFunctions()["out"]); d.addOutputFunction(outputFunctions()["out"]); e.addOutputFunction(outputFunctions()["out"]); f.addOutputFunction(outputFunctions()["out"]); a.addUpdateFunction(updateFunctions()["update"]); b.addUpdateFunction(updateFunctions()["update"]); c.addUpdateFunction(updateFunctions()["update"]); d.addUpdateFunction(updateFunctions()["update"]); e.addUpdateFunction(updateFunctions()["update"]); f.addUpdateFunction(updateFunctions()["update"]); }
int main() { Base::OutputFunctions outputFunctions(printResult, printError, printScore); // The constructor for each of these objects will result in the benchmark being executed KernelTemplate kernelTemplate; AverageFloat32x4 averageFloat32x4; Mandelbrot mandelbrot; MatrixMultiplication matrixMultiplication; VertexTransform vertexTransform; MatrixTranspose matrixTranspose; MatrixInverse matrixInverse; // Execute the benchmarks declared above Base::benchmarks.runAll(outputFunctions, true); }