Path: blob/main/contrib/llvm-project/llvm/lib/Target/LoongArch/LoongArch.h
35269 views
//===-- LoongArch.h - Top-level interface for LoongArch ---------*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7//8// This file contains the entry points for global functions defined in the LLVM9// LoongArch back-end.10//11//===----------------------------------------------------------------------===//1213#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCH_H14#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCH_H1516#include "MCTargetDesc/LoongArchBaseInfo.h"17#include "llvm/Target/TargetMachine.h"1819namespace llvm {20class AsmPrinter;21class FunctionPass;22class LoongArchTargetMachine;23class MCInst;24class MCOperand;25class MachineInstr;26class MachineOperand;27class PassRegistry;2829bool lowerLoongArchMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,30AsmPrinter &AP);31bool lowerLoongArchMachineOperandToMCOperand(const MachineOperand &MO,32MCOperand &MCOp,33const AsmPrinter &AP);3435FunctionPass *createLoongArchDeadRegisterDefinitionsPass();36FunctionPass *createLoongArchExpandAtomicPseudoPass();37FunctionPass *createLoongArchISelDag(LoongArchTargetMachine &TM);38FunctionPass *createLoongArchOptWInstrsPass();39FunctionPass *createLoongArchPreRAExpandPseudoPass();40FunctionPass *createLoongArchExpandPseudoPass();41void initializeLoongArchDAGToDAGISelLegacyPass(PassRegistry &);42void initializeLoongArchDeadRegisterDefinitionsPass(PassRegistry &);43void initializeLoongArchExpandAtomicPseudoPass(PassRegistry &);44void initializeLoongArchOptWInstrsPass(PassRegistry &);45void initializeLoongArchPreRAExpandPseudoPass(PassRegistry &);46void initializeLoongArchExpandPseudoPass(PassRegistry &);47} // end namespace llvm4849#endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCH_H505152