WebAssembly.h revision 314564
1//===-- WebAssembly.h - Top-level interface for WebAssembly ----*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9/// 10/// \file 11/// \brief This file contains the entry points for global functions defined in 12/// the LLVM WebAssembly back-end. 13/// 14//===----------------------------------------------------------------------===// 15 16#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLY_H 17#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLY_H 18 19#include "llvm/PassRegistry.h" 20#include "llvm/Support/CodeGen.h" 21 22namespace llvm { 23 24class WebAssemblyTargetMachine; 25class ModulePass; 26class FunctionPass; 27 28// LLVM IR passes. 29ModulePass *createWebAssemblyLowerEmscriptenEHSjLj(bool DoEH, bool DoSjLj); 30void initializeWebAssemblyLowerEmscriptenEHSjLjPass(PassRegistry &); 31ModulePass *createWebAssemblyFixFunctionBitcasts(); 32FunctionPass *createWebAssemblyOptimizeReturned(); 33 34// ISel and immediate followup passes. 35FunctionPass *createWebAssemblyISelDag(WebAssemblyTargetMachine &TM, 36 CodeGenOpt::Level OptLevel); 37FunctionPass *createWebAssemblyArgumentMove(); 38FunctionPass *createWebAssemblySetP2AlignOperands(); 39 40// Late passes. 41FunctionPass *createWebAssemblyReplacePhysRegs(); 42FunctionPass *createWebAssemblyPrepareForLiveIntervals(); 43FunctionPass *createWebAssemblyOptimizeLiveIntervals(); 44FunctionPass *createWebAssemblyStoreResults(); 45FunctionPass *createWebAssemblyRegStackify(); 46FunctionPass *createWebAssemblyRegColoring(); 47FunctionPass *createWebAssemblyExplicitLocals(); 48FunctionPass *createWebAssemblyFixIrreducibleControlFlow(); 49FunctionPass *createWebAssemblyCFGStackify(); 50FunctionPass *createWebAssemblyLowerBrUnless(); 51FunctionPass *createWebAssemblyRegNumbering(); 52FunctionPass *createWebAssemblyPeephole(); 53FunctionPass *createWebAssemblyCallIndirectFixup(); 54 55} // end namespace llvm 56 57#endif 58