Lines Matching defs:MachineGadgetGraph
113 struct MachineGadgetGraph : ImmutableGraph<MachineInstr *, int> {
121 MachineGadgetGraph(std::unique_ptr<Node[]> Nodes,
149 using GraphBuilder = ImmutableGraphBuilder<MachineGadgetGraph>;
150 using Edge = MachineGadgetGraph::Edge;
151 using Node = MachineGadgetGraph::Node;
152 using EdgeSet = MachineGadgetGraph::EdgeSet;
153 using NodeSet = MachineGadgetGraph::NodeSet;
159 std::unique_ptr<MachineGadgetGraph>
164 std::unique_ptr<MachineGadgetGraph> Graph) const;
166 std::unique_ptr<MachineGadgetGraph> Graph) const;
167 int elimMitigatedEdgesAndNodes(MachineGadgetGraph &G,
170 std::unique_ptr<MachineGadgetGraph>
171 trimMitigatedEdges(std::unique_ptr<MachineGadgetGraph> Graph) const;
172 int insertFences(MachineFunction &MF, MachineGadgetGraph &G,
187 struct GraphTraits<MachineGadgetGraph *>
191 struct DOTGraphTraits<MachineGadgetGraph *> : DefaultDOTGraphTraits {
192 using GraphType = MachineGadgetGraph;
202 if (Node->getValue() == MachineGadgetGraph::ArgNodeSentinel)
213 if (MI == MachineGadgetGraph::ArgNodeSentinel)
230 constexpr MachineInstr *MachineGadgetGraph::ArgNodeSentinel;
231 constexpr int MachineGadgetGraph::GadgetEdgeSentinel;
245 MachineGadgetGraph *G) {
274 std::unique_ptr<MachineGadgetGraph> Graph = getGadgetGraph(MF, MLI, MDT, MDF);
324 std::unique_ptr<MachineGadgetGraph>
452 ? MachineGadgetGraph::ArgNodeSentinel
460 Builder.addEdge(MachineGadgetGraph::GadgetEdgeSentinel,
531 GraphIter ArgNode = MaybeAddNode(MachineGadgetGraph::ArgNodeSentinel).first;
533 std::unique_ptr<MachineGadgetGraph> G{Builder.get(FenceCount, GadgetCount)};
540 MachineGadgetGraph &G, EdgeSet &ElimEdges /* in, out */,
560 if (llvm::none_of(RootN.edges(), MachineGadgetGraph::isGadgetEdge))
571 if (MachineGadgetGraph::isCFGEdge(E) && !ElimEdges.contains(E) &&
580 if (MachineGadgetGraph::isGadgetEdge(E)) {
593 std::unique_ptr<MachineGadgetGraph>
595 std::unique_ptr<MachineGadgetGraph> Graph) const {
611 MachineFunction &MF, std::unique_ptr<MachineGadgetGraph> Graph) const {
656 MachineFunction &MF, std::unique_ptr<MachineGadgetGraph> Graph) const {
674 if (MachineGadgetGraph::isCFGEdge(E))
687 if (!MachineGadgetGraph::isGadgetEdge(E))
693 if (MachineGadgetGraph::isCFGEdge(EgressEdge))
722 MachineFunction &MF, MachineGadgetGraph &G,
731 if (MI == MachineGadgetGraph::ArgNodeSentinel) {
743 if (MachineGadgetGraph::isCFGEdge(E))