1303231Sdim//===-- Lanai.h - Top-level interface for Lanai representation --*- C++ -*-===// 2303231Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6303231Sdim// 7303231Sdim//===----------------------------------------------------------------------===// 8303231Sdim// 9303231Sdim// This file contains the entry points for global functions defined in the LLVM 10303231Sdim// Lanai back-end. 11303231Sdim// 12303231Sdim//===----------------------------------------------------------------------===// 13303231Sdim 14303231Sdim#ifndef LLVM_LIB_TARGET_LANAI_LANAI_H 15303231Sdim#define LLVM_LIB_TARGET_LANAI_LANAI_H 16303231Sdim 17353358Sdim#include "llvm/Pass.h" 18303231Sdim 19303231Sdimnamespace llvm { 20303231Sdimclass FunctionPass; 21303231Sdimclass LanaiTargetMachine; 22303231Sdimclass MachineFunctionPass; 23303231Sdimclass TargetMachine; 24303231Sdimclass formatted_raw_ostream; 25303231Sdim 26303231Sdim// createLanaiISelDag - This pass converts a legalized DAG into a 27303231Sdim// Lanai-specific DAG, ready for instruction scheduling. 28303231SdimFunctionPass *createLanaiISelDag(LanaiTargetMachine &TM); 29303231Sdim 30303231Sdim// createLanaiDelaySlotFillerPass - This pass fills delay slots 31303231Sdim// with useful instructions or nop's 32303231SdimFunctionPass *createLanaiDelaySlotFillerPass(const LanaiTargetMachine &TM); 33303231Sdim 34303231Sdim// createLanaiMemAluCombinerPass - This pass combines loads/stores and 35303231Sdim// arithmetic operations. 36303231SdimFunctionPass *createLanaiMemAluCombinerPass(); 37303231Sdim 38303231Sdim// createLanaiSetflagAluCombinerPass - This pass combines SET_FLAG and ALU 39303231Sdim// operations. 40303231SdimFunctionPass *createLanaiSetflagAluCombinerPass(); 41303231Sdim 42303231Sdim} // namespace llvm 43303231Sdim 44303231Sdim#endif // LLVM_LIB_TARGET_LANAI_LANAI_H 45