Lines Matching defs:MachineGadgetGraph
114 struct MachineGadgetGraph : ImmutableGraph<MachineInstr *, int> {
122 MachineGadgetGraph(std::unique_ptr<Node[]> Nodes,
150 using GraphBuilder = ImmutableGraphBuilder<MachineGadgetGraph>;
151 using Edge = MachineGadgetGraph::Edge;
152 using Node = MachineGadgetGraph::Node;
153 using EdgeSet = MachineGadgetGraph::EdgeSet;
154 using NodeSet = MachineGadgetGraph::NodeSet;
160 std::unique_ptr<MachineGadgetGraph>
165 std::unique_ptr<MachineGadgetGraph> Graph) const;
167 std::unique_ptr<MachineGadgetGraph> Graph) const;
168 int elimMitigatedEdgesAndNodes(MachineGadgetGraph &G,
171 std::unique_ptr<MachineGadgetGraph>
172 trimMitigatedEdges(std::unique_ptr<MachineGadgetGraph> Graph) const;
173 int insertFences(MachineFunction &MF, MachineGadgetGraph &G,
188 struct GraphTraits<MachineGadgetGraph *>
192 struct DOTGraphTraits<MachineGadgetGraph *> : DefaultDOTGraphTraits {
193 using GraphType = MachineGadgetGraph;
203 if (Node->getValue() == MachineGadgetGraph::ArgNodeSentinel)
214 if (MI == MachineGadgetGraph::ArgNodeSentinel)
231 constexpr MachineInstr *MachineGadgetGraph::ArgNodeSentinel;
232 constexpr int MachineGadgetGraph::GadgetEdgeSentinel;
246 MachineGadgetGraph *G) {
275 std::unique_ptr<MachineGadgetGraph> Graph = getGadgetGraph(MF, MLI, MDT, MDF);
325 std::unique_ptr<MachineGadgetGraph>
453 ? MachineGadgetGraph::ArgNodeSentinel
461 Builder.addEdge(MachineGadgetGraph::GadgetEdgeSentinel,
532 GraphIter ArgNode = MaybeAddNode(MachineGadgetGraph::ArgNodeSentinel).first;
534 std::unique_ptr<MachineGadgetGraph> G{Builder.get(FenceCount, GadgetCount)};
541 MachineGadgetGraph &G, EdgeSet &ElimEdges /* in, out */,
561 if (llvm::none_of(RootN.edges(), MachineGadgetGraph::isGadgetEdge))
572 if (MachineGadgetGraph::isCFGEdge(E) && !ElimEdges.contains(E) &&
581 if (MachineGadgetGraph::isGadgetEdge(E)) {
594 std::unique_ptr<MachineGadgetGraph>
596 std::unique_ptr<MachineGadgetGraph> Graph) const {
612 MachineFunction &MF, std::unique_ptr<MachineGadgetGraph> Graph) const {
657 MachineFunction &MF, std::unique_ptr<MachineGadgetGraph> Graph) const {
675 if (MachineGadgetGraph::isCFGEdge(E))
688 if (!MachineGadgetGraph::isGadgetEdge(E))
694 if (MachineGadgetGraph::isCFGEdge(EgressEdge))
723 MachineFunction &MF, MachineGadgetGraph &G,
732 if (MI == MachineGadgetGraph::ArgNodeSentinel) {
744 if (MachineGadgetGraph::isCFGEdge(E))