mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-28 10:06:07 +00:00

These properties are only valid on ComplexPatterns. Having them as flags is more convenient because one can now use "let = ... in" syntax to set these flags on several patterns at a time. This is also less error-prone as it makes it impossible to specify these properties on records derived from SDPatternOperator. Pull Request: https://github.com/llvm/llvm-project/pull/119599
38 lines
1.0 KiB
C++
38 lines
1.0 KiB
C++
//===- SDNodeProperties.h ---------------------------------------*- C++ -*-===//
|
|
//
|
|
// 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_BASIC_SDNODEPROPERTIES_H
|
|
#define LLVM_UTILS_TABLEGEN_BASIC_SDNODEPROPERTIES_H
|
|
|
|
namespace llvm {
|
|
|
|
class Record;
|
|
|
|
// SelectionDAG node properties.
|
|
// SDNPMemOperand: indicates that a node touches memory and therefore must
|
|
// have an associated memory operand that describes the access.
|
|
enum SDNP {
|
|
SDNPCommutative,
|
|
SDNPAssociative,
|
|
SDNPHasChain,
|
|
SDNPOutGlue,
|
|
SDNPInGlue,
|
|
SDNPOptInGlue,
|
|
SDNPMayLoad,
|
|
SDNPMayStore,
|
|
SDNPSideEffect,
|
|
SDNPMemOperand,
|
|
SDNPVariadic,
|
|
};
|
|
|
|
unsigned parseSDPatternOperatorProperties(const Record *R);
|
|
|
|
} // namespace llvm
|
|
|
|
#endif // LLVM_UTILS_TABLEGEN_BASIC_SDNODEPROPERTIES_H
|