]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/RISCV/RISCV.h
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[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 "Utils/RISCVBaseInfo.h"
19 #include "llvm/Target/TargetMachine.h"
20
21 namespace llvm {
22 class RISCVTargetMachine;
23 class AsmPrinter;
24 class FunctionPass;
25 class MCInst;
26 class MCOperand;
27 class MachineInstr;
28 class MachineOperand;
29 class PassRegistry;
30
31 void LowerRISCVMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
32                                     const AsmPrinter &AP);
33 bool LowerRISCVMachineOperandToMCOperand(const MachineOperand &MO,
34                                          MCOperand &MCOp, const AsmPrinter &AP);
35
36 FunctionPass *createRISCVISelDag(RISCVTargetMachine &TM);
37
38 FunctionPass *createRISCVMergeBaseOffsetOptPass();
39 void initializeRISCVMergeBaseOffsetOptPass(PassRegistry &);
40
41 FunctionPass *createRISCVExpandPseudoPass();
42 void initializeRISCVExpandPseudoPass(PassRegistry &);
43 }
44
45 #endif