Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/Target/M68k/M68k.h
35268 views
1
//===-- M68k.h - Top-level interface for M68k representation ----*- 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
/// \file
10
/// This file contains the entry points for global functions defined in the
11
/// M68k target library, as used by the LLVM JIT.
12
///
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_LIB_TARGET_M68K_M68K_H
16
#define LLVM_LIB_TARGET_M68K_M68K_H
17
18
namespace llvm {
19
20
class FunctionPass;
21
class InstructionSelector;
22
class M68kRegisterBankInfo;
23
class M68kSubtarget;
24
class M68kTargetMachine;
25
class PassRegistry;
26
27
/// This pass converts a legalized DAG into a M68k-specific DAG, ready for
28
/// instruction scheduling.
29
FunctionPass *createM68kISelDag(M68kTargetMachine &TM);
30
31
/// Return a Machine IR pass that expands M68k-specific pseudo
32
/// instructions into a sequence of actual instructions. This pass
33
/// must run after prologue/epilogue insertion and before lowering
34
/// the MachineInstr to MC.
35
FunctionPass *createM68kExpandPseudoPass();
36
37
/// This pass initializes a global base register for PIC on M68k.
38
FunctionPass *createM68kGlobalBaseRegPass();
39
40
/// Finds sequential MOVEM instruction and collapse them into a single one. This
41
/// pass has to be run after all pseudo expansions and prologue/epilogue
42
/// emission so that all possible MOVEM are already in place.
43
FunctionPass *createM68kCollapseMOVEMPass();
44
45
InstructionSelector *
46
createM68kInstructionSelector(const M68kTargetMachine &, const M68kSubtarget &,
47
const M68kRegisterBankInfo &);
48
49
void initializeM68kDAGToDAGISelLegacyPass(PassRegistry &);
50
void initializeM68kExpandPseudoPass(PassRegistry &);
51
void initializeM68kGlobalBaseRegPass(PassRegistry &);
52
void initializeM68kCollapseMOVEMPass(PassRegistry &);
53
54
} // namespace llvm
55
56
#endif // LLVM_LIB_TARGET_M68K_M68K_H
57
58