47 lines · c
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-exception6//7//===----------------------------------------------------------------------===//8//9// This file contains the entry points for global functions defined in the LLVM10// Lanai back-end.11//12//===----------------------------------------------------------------------===//13 14#ifndef LLVM_LIB_TARGET_LANAI_LANAI_H15#define LLVM_LIB_TARGET_LANAI_LANAI_H16 17#include "llvm/Pass.h"18 19namespace llvm {20class FunctionPass;21class LanaiTargetMachine;22class PassRegistry;23 24// createLanaiISelDag - This pass converts a legalized DAG into a25// Lanai-specific DAG, ready for instruction scheduling.26FunctionPass *createLanaiISelDag(LanaiTargetMachine &TM);27 28// createLanaiDelaySlotFillerPass - This pass fills delay slots29// with useful instructions or nop's30FunctionPass *createLanaiDelaySlotFillerPass(const LanaiTargetMachine &TM);31 32// createLanaiMemAluCombinerPass - This pass combines loads/stores and33// arithmetic operations.34FunctionPass *createLanaiMemAluCombinerPass();35 36// createLanaiSetflagAluCombinerPass - This pass combines SET_FLAG and ALU37// operations.38FunctionPass *createLanaiSetflagAluCombinerPass();39 40void initializeLanaiAsmPrinterPass(PassRegistry &);41void initializeLanaiDAGToDAGISelLegacyPass(PassRegistry &);42void initializeLanaiMemAluCombinerPass(PassRegistry &);43 44} // namespace llvm45 46#endif // LLVM_LIB_TARGET_LANAI_LANAI_H47