blob: 0297de120cb86572865fe6fb51fd3c33de216f81 [file] [log] [blame]
Tim Northover72062f52013-01-31 12:12:40 +00001//==-- AArch64.h - Top-level interface for AArch64 representation -*- 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// AArch64 back-end.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_TARGET_AARCH64_H
16#define LLVM_TARGET_AARCH64_H
17
18#include "MCTargetDesc/AArch64MCTargetDesc.h"
19#include "llvm/Target/TargetMachine.h"
20
21namespace llvm {
22
23class AArch64AsmPrinter;
24class FunctionPass;
25class AArch64TargetMachine;
26class MachineInstr;
27class MCInst;
28
29FunctionPass *createAArch64ISelDAG(AArch64TargetMachine &TM,
30 CodeGenOpt::Level OptLevel);
31
Tim Northover72062f52013-01-31 12:12:40 +000032FunctionPass *createAArch64CleanupLocalDynamicTLSPass();
33
Tim Northover85d27602013-02-15 14:32:20 +000034FunctionPass *createAArch64BranchFixupPass();
35
Stephen Hines36b56882014-04-23 16:57:46 -070036/// \brief Creates an AArch64-specific Target Transformation Info pass.
37ImmutablePass *createAArch64TargetTransformInfoPass(
38 const AArch64TargetMachine *TM);
39
Tim Northover72062f52013-01-31 12:12:40 +000040void LowerAArch64MachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
41 AArch64AsmPrinter &AP);
42
43
44}
45
46#endif