003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/utils/TableGen/GlobalISel
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
utils
/
TableGen
/
GlobalISel
/
📁
..
📄
CodeExpander.cpp
(2.83 KB)
📄
CodeExpander.h
(1.77 KB)
📄
CodeExpansions.h
(1.36 KB)
📄
GIMatchDag.cpp
(4.3 KB)
📄
GIMatchDag.h
(8.73 KB)
📄
GIMatchDagEdge.cpp
(1.2 KB)
📄
GIMatchDagEdge.h
(2.44 KB)
📄
GIMatchDagInstr.cpp
(1.45 KB)
📄
GIMatchDagInstr.h
(4.53 KB)
📄
GIMatchDagOperands.cpp
(4.75 KB)
📄
GIMatchDagOperands.h
(5.1 KB)
📄
GIMatchDagPredicate.cpp
(2.26 KB)
📄
GIMatchDagPredicate.h
(4.92 KB)
📄
GIMatchDagPredicateDependencyEdge.cpp
(1.17 KB)
📄
GIMatchDagPredicateDependencyEdge.h
(2.4 KB)
📄
GIMatchTree.cpp
(30.57 KB)
📄
GIMatchTree.h
(25.68 KB)
Editing: GIMatchDagEdge.h
//===- GIMatchDagEdge.h - Represent a shared operand list for nodes -------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_UTILS_TABLEGEN_GIMATCHDAGEDGE_H #define LLVM_UTILS_TABLEGEN_GIMATCHDAGEDGE_H #include "llvm/ADT/StringRef.h" namespace llvm { class raw_ostream; class GIMatchDagInstr; class GIMatchDagOperand; /// Represents an edge that connects two instructions together via a pair of /// operands. For example: /// %a = FOO ... /// %0 = BAR %a /// %1 = BAZ %a /// would have two edges for %a like so: /// BAR:Op#1 --[a]----> Op#0:FOO /// ^ /// BAZ:Op#1 --[a]------/ /// Ideally, all edges in the DAG are from a use to a def as this is a many /// to one edge but edges from defs to uses are supported too. class GIMatchDagEdge { /// The name of the edge. For example, /// (FOO $a, $b, $c) /// (BAR $d, $e, $a) /// will create an edge named 'a' to connect FOO to BAR. Although the name /// refers to the edge, the canonical value of 'a' is the operand that defines /// it. StringRef Name; const GIMatchDagInstr *FromMI; const GIMatchDagOperand *FromMO; const GIMatchDagInstr *ToMI; const GIMatchDagOperand *ToMO; public: GIMatchDagEdge(StringRef Name, const GIMatchDagInstr *FromMI, const GIMatchDagOperand *FromMO, const GIMatchDagInstr *ToMI, const GIMatchDagOperand *ToMO) : Name(Name), FromMI(FromMI), FromMO(FromMO), ToMI(ToMI), ToMO(ToMO) {} StringRef getName() const { return Name; } const GIMatchDagInstr *getFromMI() const { return FromMI; } const GIMatchDagOperand *getFromMO() const { return FromMO; } const GIMatchDagInstr *getToMI() const { return ToMI; } const GIMatchDagOperand *getToMO() const { return ToMO; } /// Flip the direction of the edge. void reverse(); /// Does this edge run from a def to (one of many) uses? bool isDefToUse() const; LLVM_DUMP_METHOD void print(raw_ostream &OS) const; #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) LLVM_DUMP_METHOD void dump() const; #endif // if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) }; raw_ostream &operator<<(raw_ostream &OS, const GIMatchDagEdge &E); } // end namespace llvm #endif // ifndef LLVM_UTILS_TABLEGEN_GIMATCHDAGEDGE_H
Upload File
Create Folder