brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · d4a33f4 Raw
45 lines · cpp
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#include "VESelectionDAGInfo.h"10 11#define GET_SDNODE_DESC12#include "VEGenSDNodeInfo.inc"13 14using namespace llvm;15 16VESelectionDAGInfo::VESelectionDAGInfo()17    : SelectionDAGGenTargetInfo(VEGenSDNodeInfo) {}18 19VESelectionDAGInfo::~VESelectionDAGInfo() = default;20 21const char *VESelectionDAGInfo::getTargetNodeName(unsigned Opcode) const {22#define TARGET_NODE_CASE(NAME)                                                 \23  case VEISD::NAME:                                                            \24    return "VEISD::" #NAME;25 26  switch (static_cast<VEISD::NodeType>(Opcode)) {27    TARGET_NODE_CASE(GLOBAL_BASE_REG)28    TARGET_NODE_CASE(LEGALAVL)29  }30#undef TARGET_NODE_CASE31 32  return SelectionDAGGenTargetInfo::getTargetNodeName(Opcode);33}34 35void VESelectionDAGInfo::verifyTargetNode(const SelectionDAG &DAG,36                                          const SDNode *N) const {37  switch (N->getOpcode()) {38  case VEISD::GETSTACKTOP:39    // result #0 has invalid type; expected ch, got i6440    return;41  }42 43  SelectionDAGGenTargetInfo::verifyTargetNode(DAG, N);44}45