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} // namespace llvm
38
39#endif
40