Path: blob/main/contrib/llvm-project/llvm/lib/Target/M68k/M68k.h
35268 views
//===-- M68k.h - Top-level interface for M68k representation ----*- 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/// \file9/// This file contains the entry points for global functions defined in the10/// M68k target library, as used by the LLVM JIT.11///12//===----------------------------------------------------------------------===//1314#ifndef LLVM_LIB_TARGET_M68K_M68K_H15#define LLVM_LIB_TARGET_M68K_M68K_H1617namespace llvm {1819class FunctionPass;20class InstructionSelector;21class M68kRegisterBankInfo;22class M68kSubtarget;23class M68kTargetMachine;24class PassRegistry;2526/// This pass converts a legalized DAG into a M68k-specific DAG, ready for27/// instruction scheduling.28FunctionPass *createM68kISelDag(M68kTargetMachine &TM);2930/// Return a Machine IR pass that expands M68k-specific pseudo31/// instructions into a sequence of actual instructions. This pass32/// must run after prologue/epilogue insertion and before lowering33/// the MachineInstr to MC.34FunctionPass *createM68kExpandPseudoPass();3536/// This pass initializes a global base register for PIC on M68k.37FunctionPass *createM68kGlobalBaseRegPass();3839/// Finds sequential MOVEM instruction and collapse them into a single one. This40/// pass has to be run after all pseudo expansions and prologue/epilogue41/// emission so that all possible MOVEM are already in place.42FunctionPass *createM68kCollapseMOVEMPass();4344InstructionSelector *45createM68kInstructionSelector(const M68kTargetMachine &, const M68kSubtarget &,46const M68kRegisterBankInfo &);4748void initializeM68kDAGToDAGISelLegacyPass(PassRegistry &);49void initializeM68kExpandPseudoPass(PassRegistry &);50void initializeM68kGlobalBaseRegPass(PassRegistry &);51void initializeM68kCollapseMOVEMPass(PassRegistry &);5253} // namespace llvm5455#endif // LLVM_LIB_TARGET_M68K_M68K_H565758