| // RUN: llvm-tblgen -gen-sd-node-info -I %p/../../../include %s | FileCheck %s |
| |
| include "llvm/Target/Target.td" |
| |
| def MyTarget : Target; |
| |
| // CHECK: #ifdef GET_SDNODE_ENUM |
| // CHECK-NEXT: #undef GET_SDNODE_ENUM |
| // CHECK-EMPTY: |
| // CHECK-NEXT: namespace llvm::MyTargetISD { |
| // CHECK-EMPTY: |
| // CHECK-NEXT: static constexpr unsigned GENERATED_OPCODE_END = ISD::BUILTIN_OP_END; |
| // CHECK-EMPTY: |
| // CHECK-NEXT: } // namespace llvm::MyTargetISD |
| // CHECK-EMPTY: |
| // CHECK-NEXT: #endif // GET_SDNODE_ENUM |
| // CHECK-EMPTY: |
| // CHECK-NEXT: #ifdef GET_SDNODE_DESC |
| // CHECK-NEXT: #undef GET_SDNODE_DESC |
| // CHECK-EMPTY: |
| // CHECK-NEXT: namespace llvm { |
| // CHECK-EMPTY: |
| // CHECK-NEXT: #ifdef __GNUC__ |
| // CHECK-NEXT: #pragma GCC diagnostic push |
| // CHECK-NEXT: #pragma GCC diagnostic ignored "-Woverlength-strings" |
| // CHECK-NEXT: #endif |
| // CHECK-NEXT: static constexpr char MyTargetSDNodeNamesStorage[] = |
| // CHECK-NEXT: "\0" |
| // CHECK-NEXT: ; |
| // CHECK-NEXT: #ifdef __GNUC__ |
| // CHECK-NEXT: #pragma GCC diagnostic pop |
| // CHECK-NEXT: #endif |
| // CHECK-EMPTY: |
| // CHECK-NEXT: static constexpr llvm::StringTable |
| // CHECK-NEXT: MyTargetSDNodeNames = MyTargetSDNodeNamesStorage; |
| // CHECK-EMPTY: |
| // CHECK-NEXT: static const SDTypeConstraint MyTargetSDTypeConstraints[] = { |
| // CHECK-NEXT: /* dummy */ {SDTCisVT, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE} |
| // CHECK-NEXT: }; |
| // CHECK-EMPTY: |
| // CHECK-NEXT: static const SDNodeDesc MyTargetSDNodeDescs[] = { |
| // CHECK-NEXT: }; |
| // CHECK-EMPTY: |
| // CHECK-NEXT: static const SDNodeInfo MyTargetGenSDNodeInfo( |
| // CHECK-NEXT: /*NumOpcodes=*/0, MyTargetSDNodeDescs, |
| // CHECK-NEXT: MyTargetSDNodeNames, MyTargetSDTypeConstraints); |
| // CHECK-EMPTY: |
| // CHECK-NEXT: } // namespace llvm |
| // CHECK-EMPTY: |
| // CHECK-NEXT: #endif // GET_SDNODE_DESC |