summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Lanai/Lanai.h
diff options
context:
space:
mode:
authorJacques Pienaar <jpienaar@google.com>2016-03-28 13:09:54 +0000
committerJacques Pienaar <jpienaar@google.com>2016-03-28 13:09:54 +0000
commitfcef3e46172bdb8ef0d9e9d08bdd9bf886c16d3d (patch)
treed30c6f3e9b15bd065cf492377b70e32a3a01deab /llvm/lib/Target/Lanai/Lanai.h
parentf539faa7333e7c807eaca00c586cf6aa15bf333c (diff)
downloadbcm5719-llvm-fcef3e46172bdb8ef0d9e9d08bdd9bf886c16d3d.tar.gz
bcm5719-llvm-fcef3e46172bdb8ef0d9e9d08bdd9bf886c16d3d.zip
[lanai] Add Lanai backend.
Add the Lanai backend to lib/Target. General Lanai backend discussion on llvm-dev thread "[RFC] Lanai backend" (http://lists.llvm.org/pipermail/llvm-dev/2016-February/095118.html). Differential Revision: http://reviews.llvm.org/D17011 llvm-svn: 264578
Diffstat (limited to 'llvm/lib/Target/Lanai/Lanai.h')
-rw-r--r--llvm/lib/Target/Lanai/Lanai.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/llvm/lib/Target/Lanai/Lanai.h b/llvm/lib/Target/Lanai/Lanai.h
new file mode 100644
index 00000000000..47bd498c579
--- /dev/null
+++ b/llvm/lib/Target/Lanai/Lanai.h
@@ -0,0 +1,51 @@
+//===-- Lanai.h - Top-level interface for Lanai representation --*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file contains the entry points for global functions defined in the LLVM
+// Lanai back-end.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIB_TARGET_LANAI_LANAI_H
+#define LLVM_LIB_TARGET_LANAI_LANAI_H
+
+#include "LanaiAluCode.h"
+#include "LanaiCondCode.h"
+#include "MCTargetDesc/LanaiBaseInfo.h"
+#include "MCTargetDesc/LanaiMCTargetDesc.h"
+#include "llvm/CodeGen/ISDOpcodes.h"
+#include "llvm/Target/TargetMachine.h"
+
+namespace llvm {
+class FunctionPass;
+class LanaiTargetMachine;
+class MachineFunctionPass;
+class TargetMachine;
+class formatted_raw_ostream;
+
+// createLanaiISelDag - This pass converts a legalized DAG into a
+// Lanai-specific DAG, ready for instruction scheduling.
+FunctionPass *createLanaiISelDag(LanaiTargetMachine &TM);
+
+// createLanaiDelaySlotFillerPass - This pass fills delay slots
+// with useful instructions or nop's
+FunctionPass *createLanaiDelaySlotFillerPass(const LanaiTargetMachine &TM);
+
+// createLanaiMemAluCombinerPass - This pass combines loads/stores and
+// arithmetic operations.
+FunctionPass *createLanaiMemAluCombinerPass();
+
+// createLanaiSetflagAluCombinerPass - This pass combines SET_FLAG and ALU
+// operations.
+FunctionPass *createLanaiSetflagAluCombinerPass();
+
+extern Target TheLanaiTarget;
+} // namespace llvm
+
+#endif // LLVM_LIB_TARGET_LANAI_LANAI_H
OpenPOWER on IntegriCloud