]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/RISCV/RISCV.h
Merge clang 7.0.1 and several follow-up changes
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / RISCV / RISCV.h
1 //===-- 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
18 #include "MCTargetDesc/RISCVBaseInfo.h"
19
20 namespace llvm {
21 class RISCVTargetMachine;
22 class AsmPrinter;
23 class FunctionPass;
24 class MCInst;
25 class MCOperand;
26 class MachineInstr;
27 class MachineOperand;
28 class PassRegistry;
29
30 void LowerRISCVMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
31                                     const AsmPrinter &AP);
32 bool LowerRISCVMachineOperandToMCOperand(const MachineOperand &MO,
33                                          MCOperand &MCOp, const AsmPrinter &AP);
34
35 FunctionPass *createRISCVISelDag(RISCVTargetMachine &TM);
36
37 FunctionPass *createRISCVMergeBaseOffsetOptPass();
38 void initializeRISCVMergeBaseOffsetOptPass(PassRegistry &);
39 }
40
41 #endif