Lines Matching refs:Graph

165                             std::unique_ptr<MachineGadgetGraph> Graph) const;
167 std::unique_ptr<MachineGadgetGraph> Graph) const;
172 trimMitigatedEdges(std::unique_ptr<MachineGadgetGraph> Graph) const;
275 std::unique_ptr<MachineGadgetGraph> Graph = getGadgetGraph(MF, MLI, MDT, MDF); in runOnMachineFunction() local
277 if (Graph == nullptr) in runOnMachineFunction()
281 writeGadgetGraph(outs(), MF, Graph.get()); in runOnMachineFunction()
294 writeGadgetGraph(FileOut, MF, Graph.get()); in runOnMachineFunction()
314 FencesInserted = hardenLoadsWithPlugin(MF, std::move(Graph)); in runOnMachineFunction()
316 FencesInserted = hardenLoadsWithHeuristic(MF, std::move(Graph)); in runOnMachineFunction()
597 std::unique_ptr<MachineGadgetGraph> Graph) const { in trimMitigatedEdges()
598 NodeSet ElimNodes{*Graph}; in trimMitigatedEdges()
599 EdgeSet ElimEdges{*Graph}; in trimMitigatedEdges()
601 elimMitigatedEdgesAndNodes(*Graph, ElimEdges, ElimNodes); in trimMitigatedEdges()
603 Graph->NumFences = 0; in trimMitigatedEdges()
604 Graph->NumGadgets = RemainingGadgets; in trimMitigatedEdges()
606 Graph = GraphBuilder::trim(*Graph, ElimNodes, ElimEdges, 0 /* NumFences */, in trimMitigatedEdges()
609 return Graph; in trimMitigatedEdges()
613 MachineFunction &MF, std::unique_ptr<MachineGadgetGraph> Graph) const { in hardenLoadsWithPlugin()
618 Graph = trimMitigatedEdges(std::move(Graph)); in hardenLoadsWithPlugin()
620 if (Graph->NumGadgets == 0) in hardenLoadsWithPlugin()
624 EdgeSet CutEdges{*Graph}; in hardenLoadsWithPlugin()
625 auto Nodes = std::make_unique<unsigned int[]>(Graph->nodes_size() + in hardenLoadsWithPlugin()
627 auto Edges = std::make_unique<unsigned int[]>(Graph->edges_size()); in hardenLoadsWithPlugin()
628 auto EdgeCuts = std::make_unique<int[]>(Graph->edges_size()); in hardenLoadsWithPlugin()
629 auto EdgeValues = std::make_unique<int[]>(Graph->edges_size()); in hardenLoadsWithPlugin()
630 for (const Node &N : Graph->nodes()) { in hardenLoadsWithPlugin()
631 Nodes[Graph->getNodeIndex(N)] = Graph->getEdgeIndex(*N.edges_begin()); in hardenLoadsWithPlugin()
633 Nodes[Graph->nodes_size()] = Graph->edges_size(); // terminator node in hardenLoadsWithPlugin()
634 for (const Edge &E : Graph->edges()) { in hardenLoadsWithPlugin()
635 Edges[Graph->getEdgeIndex(E)] = Graph->getNodeIndex(*E.getDest()); in hardenLoadsWithPlugin()
636 EdgeValues[Graph->getEdgeIndex(E)] = E.getValue(); in hardenLoadsWithPlugin()
638 OptimizeCut(Nodes.get(), Graph->nodes_size(), Edges.get(), EdgeValues.get(), in hardenLoadsWithPlugin()
639 EdgeCuts.get(), Graph->edges_size()); in hardenLoadsWithPlugin()
640 for (int I = 0; I < Graph->edges_size(); ++I) in hardenLoadsWithPlugin()
647 FencesInserted += insertFences(MF, *Graph, CutEdges); in hardenLoadsWithPlugin()
651 Graph = GraphBuilder::trim(*Graph, NodeSet{*Graph}, CutEdges); in hardenLoadsWithPlugin()
658 MachineFunction &MF, std::unique_ptr<MachineGadgetGraph> Graph) const { in hardenLoadsWithHeuristic()
661 if (Graph->NumFences > 0) { in hardenLoadsWithHeuristic()
663 Graph = trimMitigatedEdges(std::move(Graph)); in hardenLoadsWithHeuristic()
667 if (Graph->NumGadgets == 0) in hardenLoadsWithHeuristic()
671 EdgeSet CutEdges{*Graph}; in hardenLoadsWithHeuristic()
675 for (const Edge &E : Graph->edges()) in hardenLoadsWithHeuristic()
687 for (const Node &N : Graph->nodes()) { in hardenLoadsWithHeuristic()
716 int FencesInserted = insertFences(MF, *Graph, CutEdges); in hardenLoadsWithHeuristic()