blob: c1fdf793305b729dd9abc083be249bb44a022b4b [file] [log] [blame]
Jacques Pienaarfcef3e42016-03-28 13:09:54 +00001//===-- Lanai.h - Top-level interface for Lanai 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// Lanai back-end.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_LIB_TARGET_LANAI_LANAI_H
16#define LLVM_LIB_TARGET_LANAI_LANAI_H
17
18#include "LanaiAluCode.h"
19#include "LanaiCondCode.h"
20#include "MCTargetDesc/LanaiBaseInfo.h"
21#include "MCTargetDesc/LanaiMCTargetDesc.h"
22#include "llvm/CodeGen/ISDOpcodes.h"
23#include "llvm/Target/TargetMachine.h"
24
25namespace llvm {
26class FunctionPass;
27class LanaiTargetMachine;
28class MachineFunctionPass;
29class TargetMachine;
30class formatted_raw_ostream;
31
32// createLanaiISelDag - This pass converts a legalized DAG into a
33// Lanai-specific DAG, ready for instruction scheduling.
34FunctionPass *createLanaiISelDag(LanaiTargetMachine &TM);
35
36// createLanaiDelaySlotFillerPass - This pass fills delay slots
37// with useful instructions or nop's
38FunctionPass *createLanaiDelaySlotFillerPass(const LanaiTargetMachine &TM);
39
40// createLanaiMemAluCombinerPass - This pass combines loads/stores and
41// arithmetic operations.
42FunctionPass *createLanaiMemAluCombinerPass();
43
44// createLanaiSetflagAluCombinerPass - This pass combines SET_FLAG and ALU
45// operations.
46FunctionPass *createLanaiSetflagAluCombinerPass();
47
Mehdi Aminif42454b2016-10-09 23:00:34 +000048Target &getTheLanaiTarget();
Jacques Pienaarfcef3e42016-03-28 13:09:54 +000049} // namespace llvm
50
51#endif // LLVM_LIB_TARGET_LANAI_LANAI_H