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; 22 23// createLanaiISelDag - This pass converts a legalized DAG into a 24// Lanai-specific DAG, ready for instruction scheduling. 25FunctionPass *createLanaiISelDag(LanaiTargetMachine &TM); 26 27// createLanaiDelaySlotFillerPass - This pass fills delay slots 28// with useful instructions or nop's 29FunctionPass *createLanaiDelaySlotFillerPass(const LanaiTargetMachine &TM); 30 31// createLanaiMemAluCombinerPass - This pass combines loads/stores and 32// arithmetic operations. 33FunctionPass *createLanaiMemAluCombinerPass(); 34 35// createLanaiSetflagAluCombinerPass - This pass combines SET_FLAG and ALU 36// operations. 37FunctionPass *createLanaiSetflagAluCombinerPass(); 38 39} // namespace llvm 40 41#endif // LLVM_LIB_TARGET_LANAI_LANAI_H 42