WebAssembly.h revision 321369
1168404Spjd//===-- WebAssembly.h - Top-level interface for WebAssembly ----*- C++ -*-===// 2168404Spjd// 3168404Spjd// The LLVM Compiler Infrastructure 4168404Spjd// 5168404Spjd// This file is distributed under the University of Illinois Open Source 6168404Spjd// License. See LICENSE.TXT for details. 7168404Spjd// 8168404Spjd//===----------------------------------------------------------------------===// 9168404Spjd/// 10168404Spjd/// \file 11168404Spjd/// \brief This file contains the entry points for global functions defined in 12168404Spjd/// the LLVM WebAssembly back-end. 13168404Spjd/// 14168404Spjd//===----------------------------------------------------------------------===// 15168404Spjd 16168404Spjd#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLY_H 17168404Spjd#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLY_H 18168404Spjd 19168404Spjd#include "llvm/PassRegistry.h" 20168404Spjd#include "llvm/Support/CodeGen.h" 21168404Spjd 22168404Spjdnamespace llvm { 23168404Spjd 24168404Spjdclass WebAssemblyTargetMachine; 25168404Spjdclass ModulePass; 26168404Spjdclass FunctionPass; 27168404Spjd 28168404Spjd// LLVM IR passes. 29168404SpjdModulePass *createWebAssemblyLowerEmscriptenEHSjLj(bool DoEH, bool DoSjLj); 30168404Spjdvoid initializeWebAssemblyLowerEmscriptenEHSjLjPass(PassRegistry &); 31168404SpjdModulePass *createWebAssemblyFixFunctionBitcasts(); 32168404SpjdFunctionPass *createWebAssemblyOptimizeReturned(); 33168404Spjd 34168404Spjd// ISel and immediate followup passes. 35168404SpjdFunctionPass *createWebAssemblyISelDag(WebAssemblyTargetMachine &TM, 36168404Spjd CodeGenOpt::Level OptLevel); 37168404SpjdFunctionPass *createWebAssemblyArgumentMove(); 38168404SpjdFunctionPass *createWebAssemblySetP2AlignOperands(); 39168404Spjd 40168404Spjd// Late passes. 41168404SpjdFunctionPass *createWebAssemblyReplacePhysRegs(); 42168404SpjdFunctionPass *createWebAssemblyPrepareForLiveIntervals(); 43168404SpjdFunctionPass *createWebAssemblyOptimizeLiveIntervals(); 44168404SpjdFunctionPass *createWebAssemblyStoreResults(); 45168404SpjdFunctionPass *createWebAssemblyRegStackify(); 46168404SpjdFunctionPass *createWebAssemblyRegColoring(); 47168404SpjdFunctionPass *createWebAssemblyExplicitLocals(); 48168404SpjdFunctionPass *createWebAssemblyFixIrreducibleControlFlow(); 49168404SpjdFunctionPass *createWebAssemblyCFGSort(); 50168404SpjdFunctionPass *createWebAssemblyCFGStackify(); 51168404SpjdFunctionPass *createWebAssemblyLowerBrUnless(); 52168404SpjdFunctionPass *createWebAssemblyRegNumbering(); 53168404SpjdFunctionPass *createWebAssemblyPeephole(); 54168404SpjdFunctionPass *createWebAssemblyCallIndirectFixup(); 55168404Spjd 56168404Spjd} // end namespace llvm 57168404Spjd 58168404Spjd#endif 59168404Spjd