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