1//===-- Lanai.h - Top-level interface for Lanai 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// This file contains the entry points for global functions defined in the LLVM 10// Lanai back-end. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_LIB_TARGET_LANAI_LANAI_H 15#define LLVM_LIB_TARGET_LANAI_LANAI_H 16 17#include "llvm/Pass.h" 18 19namespace llvm { 20class FunctionPass; 21class LanaiTargetMachine; 22class MachineFunctionPass; 23class TargetMachine; 24class formatted_raw_ostream; 25 26// createLanaiISelDag - This pass converts a legalized DAG into a 27// Lanai-specific DAG, ready for instruction scheduling. 28FunctionPass *createLanaiISelDag(LanaiTargetMachine &TM); 29 30// createLanaiDelaySlotFillerPass - This pass fills delay slots 31// with useful instructions or nop's 32FunctionPass *createLanaiDelaySlotFillerPass(const LanaiTargetMachine &TM); 33 34// createLanaiMemAluCombinerPass - This pass combines loads/stores and 35// arithmetic operations. 36FunctionPass *createLanaiMemAluCombinerPass(); 37 38// createLanaiSetflagAluCombinerPass - This pass combines SET_FLAG and ALU 39// operations. 40FunctionPass *createLanaiSetflagAluCombinerPass(); 41 42} // namespace llvm 43 44#endif // LLVM_LIB_TARGET_LANAI_LANAI_H 45