LoongArch.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //===-- LoongArch.h - Top-level interface for LoongArch ---------*- C++ -*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. //
  9. // This file contains the entry points for global functions defined in the LLVM
  10. // LoongArch back-end.
  11. //
  12. //===----------------------------------------------------------------------===//
  13. #ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCH_H
  14. #define LLVM_LIB_TARGET_LOONGARCH_LOONGARCH_H
  15. #include "MCTargetDesc/LoongArchBaseInfo.h"
  16. #include "llvm/Target/TargetMachine.h"
  17. namespace llvm {
  18. class AsmPrinter;
  19. class FunctionPass;
  20. class LoongArchTargetMachine;
  21. class MCInst;
  22. class MCOperand;
  23. class MachineInstr;
  24. class MachineOperand;
  25. class PassRegistry;
  26. bool lowerLoongArchMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
  27. AsmPrinter &AP);
  28. bool lowerLoongArchMachineOperandToMCOperand(const MachineOperand &MO,
  29. MCOperand &MCOp,
  30. const AsmPrinter &AP);
  31. FunctionPass *createLoongArchExpandAtomicPseudoPass();
  32. FunctionPass *createLoongArchISelDag(LoongArchTargetMachine &TM);
  33. FunctionPass *createLoongArchPreRAExpandPseudoPass();
  34. void initializeLoongArchDAGToDAGISelPass(PassRegistry &);
  35. void initializeLoongArchExpandAtomicPseudoPass(PassRegistry &);
  36. void initializeLoongArchPreRAExpandPseudoPass(PassRegistry &);
  37. } // end namespace llvm
  38. #endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCH_H