1356843Sdim//===- GIMatchDagInstr.cpp - A shared operand list for nodes --------------===//
2356843Sdim//
3356843Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4356843Sdim// See https://llvm.org/LICENSE.txt for license information.
5356843Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6356843Sdim//
7356843Sdim//===----------------------------------------------------------------------===//
8356843Sdim
9356843Sdim#include "GIMatchDagInstr.h"
10356843Sdim#include "../CodeGenInstruction.h"
11356843Sdim#include "GIMatchDag.h"
12356843Sdim#include "llvm/TableGen/Record.h"
13356843Sdim
14356843Sdimusing namespace llvm;
15356843Sdim
16356843Sdimvoid GIMatchDagInstr::print(raw_ostream &OS) const {
17356843Sdim  OS << "(";
18356843Sdim  if (const auto *Annotation = getOpcodeAnnotation())
19356843Sdim    OS << Annotation->TheDef->getName();
20356843Sdim  else
21356843Sdim    OS << "<unknown>";
22356843Sdim  OS << " ";
23356843Sdim  OperandInfo.print(OS);
24356843Sdim  OS << "):$" << Name;
25356843Sdim  if (!UserAssignedNamesForOperands.empty()) {
26356843Sdim    OS << " // ";
27356843Sdim    SmallVector<std::pair<unsigned, StringRef>, 8> ToPrint;
28356843Sdim    for (const auto &Assignment : UserAssignedNamesForOperands)
29356843Sdim      ToPrint.emplace_back(Assignment.first, Assignment.second);
30356843Sdim    llvm::sort(ToPrint.begin(), ToPrint.end());
31356843Sdim    StringRef Separator = "";
32356843Sdim    for (const auto &Assignment : ToPrint) {
33356843Sdim      OS << Separator << "$" << Assignment.second << "=getOperand("
34356843Sdim         << Assignment.first << ")";
35356843Sdim      Separator = ", ";
36356843Sdim    }
37356843Sdim  }
38356843Sdim}
39356843Sdim
40356843Sdimvoid GIMatchDagInstr::setMatchRoot() {
41356843Sdim  IsMatchRoot = true;
42356843Sdim  Dag.addMatchRoot(this);
43356843Sdim}
44356843Sdim
45356843Sdimraw_ostream &llvm::operator<<(raw_ostream &OS, const GIMatchDagInstr &N) {
46356843Sdim  N.print(OS);
47356843Sdim  return OS;
48356843Sdim}
49