xref: /llvm-project/llvm/utils/TableGen/Basic/SDNodeProperties.h (revision 6b2232606d01a029f640b61b4f985d9dea79d4b6)
1fa3d789dSPierre van Houtryve //===- SDNodeProperties.h ---------------------------------------*- C++ -*-===//
2fa3d789dSPierre van Houtryve //
3fa3d789dSPierre van Houtryve // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4fa3d789dSPierre van Houtryve // See https://llvm.org/LICENSE.txt for license information.
5fa3d789dSPierre van Houtryve // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6fa3d789dSPierre van Houtryve //
7fa3d789dSPierre van Houtryve //===----------------------------------------------------------------------===//
8fa3d789dSPierre van Houtryve 
98a61bfcfSRahul Joshi #ifndef LLVM_UTILS_TABLEGEN_BASIC_SDNODEPROPERTIES_H
108a61bfcfSRahul Joshi #define LLVM_UTILS_TABLEGEN_BASIC_SDNODEPROPERTIES_H
11fa3d789dSPierre van Houtryve 
12fa3d789dSPierre van Houtryve namespace llvm {
13fa3d789dSPierre van Houtryve 
14fa3d789dSPierre van Houtryve class Record;
15fa3d789dSPierre van Houtryve 
16fa3d789dSPierre van Houtryve // SelectionDAG node properties.
17fa3d789dSPierre van Houtryve //  SDNPMemOperand: indicates that a node touches memory and therefore must
18fa3d789dSPierre van Houtryve //                  have an associated memory operand that describes the access.
19fa3d789dSPierre van Houtryve enum SDNP {
20fa3d789dSPierre van Houtryve   SDNPCommutative,
21fa3d789dSPierre van Houtryve   SDNPAssociative,
22fa3d789dSPierre van Houtryve   SDNPHasChain,
23fa3d789dSPierre van Houtryve   SDNPOutGlue,
24fa3d789dSPierre van Houtryve   SDNPInGlue,
25fa3d789dSPierre van Houtryve   SDNPOptInGlue,
26fa3d789dSPierre van Houtryve   SDNPMayLoad,
27fa3d789dSPierre van Houtryve   SDNPMayStore,
28fa3d789dSPierre van Houtryve   SDNPSideEffect,
29fa3d789dSPierre van Houtryve   SDNPMemOperand,
30fa3d789dSPierre van Houtryve   SDNPVariadic,
31fa3d789dSPierre van Houtryve };
32fa3d789dSPierre van Houtryve 
33*ddda37a6SRahul Joshi unsigned parseSDPatternOperatorProperties(const Record *R);
34fa3d789dSPierre van Houtryve 
35fa3d789dSPierre van Houtryve } // namespace llvm
36fa3d789dSPierre van Houtryve 
378a61bfcfSRahul Joshi #endif // LLVM_UTILS_TABLEGEN_BASIC_SDNODEPROPERTIES_H
38