Lines Matching refs:MachineGadgetGraph
115 struct MachineGadgetGraph : ImmutableGraph<MachineInstr *, int> { struct
123 MachineGadgetGraph(std::unique_ptr<Node[]> Nodes, in MachineGadgetGraph() function
151 using GraphBuilder = ImmutableGraphBuilder<MachineGadgetGraph>;
152 using Edge = MachineGadgetGraph::Edge;
153 using Node = MachineGadgetGraph::Node;
154 using EdgeSet = MachineGadgetGraph::EdgeSet;
155 using NodeSet = MachineGadgetGraph::NodeSet;
161 std::unique_ptr<MachineGadgetGraph>
166 std::unique_ptr<MachineGadgetGraph> Graph) const;
168 std::unique_ptr<MachineGadgetGraph> Graph) const;
169 int elimMitigatedEdgesAndNodes(MachineGadgetGraph &G,
172 std::unique_ptr<MachineGadgetGraph>
173 trimMitigatedEdges(std::unique_ptr<MachineGadgetGraph> Graph) const;
174 int insertFences(MachineFunction &MF, MachineGadgetGraph &G,
189 struct GraphTraits<MachineGadgetGraph *>
193 struct DOTGraphTraits<MachineGadgetGraph *> : DefaultDOTGraphTraits {
194 using GraphType = MachineGadgetGraph;
204 if (Node->getValue() == MachineGadgetGraph::ArgNodeSentinel) in getNodeLabel()
215 if (MI == MachineGadgetGraph::ArgNodeSentinel) in getNodeAttributes()
232 constexpr MachineInstr *MachineGadgetGraph::ArgNodeSentinel;
233 constexpr int MachineGadgetGraph::GadgetEdgeSentinel;
247 MachineGadgetGraph *G) { in writeGadgetGraph()
276 std::unique_ptr<MachineGadgetGraph> Graph = getGadgetGraph(MF, MLI, MDT, MDF); in runOnMachineFunction()
325 std::unique_ptr<MachineGadgetGraph>
455 ? MachineGadgetGraph::ArgNodeSentinel in getGadgetGraph()
463 Builder.addEdge(MachineGadgetGraph::GadgetEdgeSentinel, in getGadgetGraph()
534 GraphIter ArgNode = MaybeAddNode(MachineGadgetGraph::ArgNodeSentinel).first; in getGadgetGraph()
536 std::unique_ptr<MachineGadgetGraph> G{Builder.get(FenceCount, GadgetCount)}; in getGadgetGraph()
543 MachineGadgetGraph &G, EdgeSet &ElimEdges /* in, out */, in elimMitigatedEdgesAndNodes()
563 if (llvm::none_of(RootN.edges(), MachineGadgetGraph::isGadgetEdge)) in elimMitigatedEdgesAndNodes()
574 if (MachineGadgetGraph::isCFGEdge(E) && !ElimEdges.contains(E) && in elimMitigatedEdgesAndNodes()
583 if (MachineGadgetGraph::isGadgetEdge(E)) { in elimMitigatedEdgesAndNodes()
597 std::unique_ptr<MachineGadgetGraph>
599 std::unique_ptr<MachineGadgetGraph> Graph) const { in trimMitigatedEdges()
615 MachineFunction &MF, std::unique_ptr<MachineGadgetGraph> Graph) const { in hardenLoadsWithPlugin()
660 MachineFunction &MF, std::unique_ptr<MachineGadgetGraph> Graph) const { in hardenLoadsWithHeuristic()
678 if (MachineGadgetGraph::isCFGEdge(E)) in hardenLoadsWithHeuristic()
691 if (!MachineGadgetGraph::isGadgetEdge(E)) in hardenLoadsWithHeuristic()
697 if (MachineGadgetGraph::isCFGEdge(EgressEdge)) in hardenLoadsWithHeuristic()
726 MachineFunction &MF, MachineGadgetGraph &G, in insertFences()
735 if (MI == MachineGadgetGraph::ArgNodeSentinel) { in insertFences()
747 if (MachineGadgetGraph::isCFGEdge(E)) in insertFences()