blob: 884cb2e5014d203e25434c93d522479e7b98993c [file] [log] [blame]
Alex Bradbury89718422017-10-19 21:37:38 +00001//===-- RISCV.h - Top-level interface for RISCV -----------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file contains the entry points for global functions defined in the LLVM
11// RISC-V back-end.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_LIB_TARGET_RISCV_RISCV_H
16#define LLVM_LIB_TARGET_RISCV_RISCV_H
17
Alex Bradburyec8aa912017-11-08 13:24:21 +000018#include "MCTargetDesc/RISCVBaseInfo.h"
Alex Bradbury89718422017-10-19 21:37:38 +000019
20namespace llvm {
21class RISCVTargetMachine;
Alex Bradburyec8aa912017-11-08 13:24:21 +000022class AsmPrinter;
23class FunctionPass;
Alex Bradbury89718422017-10-19 21:37:38 +000024class MCInst;
Alex Bradburyec8aa912017-11-08 13:24:21 +000025class MCOperand;
Alex Bradbury89718422017-10-19 21:37:38 +000026class MachineInstr;
Alex Bradburyec8aa912017-11-08 13:24:21 +000027class MachineOperand;
Alex Bradbury89718422017-10-19 21:37:38 +000028
Alex Bradburyec8aa912017-11-08 13:24:21 +000029void LowerRISCVMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
30 const AsmPrinter &AP);
31bool LowerRISCVMachineOperandToMCOperand(const MachineOperand &MO,
32 MCOperand &MCOp, const AsmPrinter &AP);
Alex Bradbury89718422017-10-19 21:37:38 +000033
34FunctionPass *createRISCVISelDag(RISCVTargetMachine &TM);
35}
36
37#endif