46 lines · c
1//===----------------------------------------------------------------------===//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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_LIB_TARGET_VE_VESELECTIONDAGINFO_H10#define LLVM_LIB_TARGET_VE_VESELECTIONDAGINFO_H11 12#include "llvm/CodeGen/SelectionDAGTargetInfo.h"13 14#define GET_SDNODE_ENUM15#include "VEGenSDNodeInfo.inc"16 17namespace llvm {18namespace VEISD {19 20enum NodeType : unsigned {21 GLOBAL_BASE_REG = GENERATED_OPCODE_END, // Global base reg for PIC.22 23 // Annotation as a wrapper. LEGALAVL(VL) means that VL refers to 64bit of24 // data, whereas the raw EVL coming in from VP nodes always refers to number25 // of elements, regardless of their size.26 LEGALAVL,27};28 29} // namespace VEISD30 31class VESelectionDAGInfo : public SelectionDAGGenTargetInfo {32public:33 VESelectionDAGInfo();34 35 ~VESelectionDAGInfo() override;36 37 const char *getTargetNodeName(unsigned Opcode) const override;38 39 void verifyTargetNode(const SelectionDAG &DAG,40 const SDNode *N) const override;41};42 43} // namespace llvm44 45#endif // LLVM_LIB_TARGET_VE_VESELECTIONDAGINFO_H46