WebAssembly.h revision 341825
1138593Ssam//===-- WebAssembly.h - Top-level interface for WebAssembly ----*- C++ -*-===// 2138593Ssam// 3138593Ssam// The LLVM Compiler Infrastructure 4138593Ssam// 5138593Ssam// This file is distributed under the University of Illinois Open Source 6138593Ssam// License. See LICENSE.TXT for details. 7138593Ssam// 8138593Ssam//===----------------------------------------------------------------------===// 9138593Ssam/// 10138593Ssam/// \file 11138593Ssam/// This file contains the entry points for global functions defined in 12138593Ssam/// the LLVM WebAssembly back-end. 13138593Ssam/// 14138593Ssam//===----------------------------------------------------------------------===// 15138593Ssam 16138593Ssam#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLY_H 17138593Ssam#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLY_H 18138593Ssam 19138593Ssam#include "llvm/PassRegistry.h" 20138593Ssam#include "llvm/Support/CodeGen.h" 21138593Ssam 22138593Ssamnamespace llvm { 23138593Ssam 24138593Ssamclass WebAssemblyTargetMachine; 25138593Ssamclass ModulePass; 26138593Ssamclass FunctionPass; 27138593Ssam 28138593Ssam// LLVM IR passes. 29138593SsamModulePass *createWebAssemblyLowerEmscriptenEHSjLj(bool DoEH, bool DoSjLj); 30138593SsamModulePass *createWebAssemblyLowerGlobalDtors(); 31138593SsamModulePass *createWebAssemblyAddMissingPrototypes(); 32138593SsamModulePass *createWebAssemblyFixFunctionBitcasts(); 33138593SsamFunctionPass *createWebAssemblyOptimizeReturned(); 34138593Ssam 35283016Sngie// ISel and immediate followup passes. 36138593SsamFunctionPass *createWebAssemblyISelDag(WebAssemblyTargetMachine &TM, 37138593Ssam CodeGenOpt::Level OptLevel); 38138593SsamFunctionPass *createWebAssemblyArgumentMove(); 39138593SsamFunctionPass *createWebAssemblySetP2AlignOperands(); 40202289Semaste 41138593Ssam// Late passes. 42138593SsamFunctionPass *createWebAssemblyReplacePhysRegs(); 43138593SsamFunctionPass *createWebAssemblyPrepareForLiveIntervals(); 44138593SsamFunctionPass *createWebAssemblyOptimizeLiveIntervals(); 45138593SsamFunctionPass *createWebAssemblyStoreResults(); 46166956SsamFunctionPass *createWebAssemblyRegStackify(); 47138593SsamFunctionPass *createWebAssemblyRegColoring(); 48138593SsamFunctionPass *createWebAssemblyExplicitLocals(); 49138593SsamFunctionPass *createWebAssemblyFixIrreducibleControlFlow(); 50138593SsamFunctionPass *createWebAssemblyLateEHPrepare(); 51138593SsamFunctionPass *createWebAssemblyCFGSort(); 52138593SsamFunctionPass *createWebAssemblyCFGStackify(); 53138593SsamFunctionPass *createWebAssemblyLowerBrUnless(); 54138593SsamFunctionPass *createWebAssemblyRegNumbering(); 55138593SsamFunctionPass *createWebAssemblyPeephole(); 56191121SbrooksFunctionPass *createWebAssemblyCallIndirectFixup(); 57138593Ssam 58138593Ssam// PassRegistry initialization declarations. 59138593Ssamvoid initializeWebAssemblyAddMissingPrototypesPass(PassRegistry &); 60166956Ssamvoid initializeWebAssemblyLowerEmscriptenEHSjLjPass(PassRegistry &); 61138593Ssamvoid initializeLowerGlobalDtorsPass(PassRegistry &); 62138593Ssamvoid initializeFixFunctionBitcastsPass(PassRegistry &); 63138593Ssamvoid initializeOptimizeReturnedPass(PassRegistry &); 64138593Ssamvoid initializeWebAssemblyArgumentMovePass(PassRegistry &); 65138593Ssamvoid initializeWebAssemblySetP2AlignOperandsPass(PassRegistry &); 66166956Ssamvoid initializeWebAssemblyReplacePhysRegsPass(PassRegistry &); 67138593Ssamvoid initializeWebAssemblyPrepareForLiveIntervalsPass(PassRegistry &); 68138593Ssamvoid initializeWebAssemblyOptimizeLiveIntervalsPass(PassRegistry &); 69138593Ssamvoid initializeWebAssemblyStoreResultsPass(PassRegistry &); 70138593Ssamvoid initializeWebAssemblyRegStackifyPass(PassRegistry &); 71138593Ssamvoid initializeWebAssemblyRegColoringPass(PassRegistry &); 72166956Ssamvoid initializeWebAssemblyExplicitLocalsPass(PassRegistry &); 73166956Ssamvoid initializeWebAssemblyFixIrreducibleControlFlowPass(PassRegistry &); 74166956Ssamvoid initializeWebAssemblyLateEHPreparePass(PassRegistry &); 75138593Ssamvoid initializeWebAssemblyExceptionInfoPass(PassRegistry &); 76138593Ssamvoid initializeWebAssemblyCFGSortPass(PassRegistry &); 77138593Ssamvoid initializeWebAssemblyCFGStackifyPass(PassRegistry &); 78138593Ssamvoid initializeWebAssemblyLowerBrUnlessPass(PassRegistry &); 79166956Ssamvoid initializeWebAssemblyRegNumberingPass(PassRegistry &); 80166956Ssamvoid initializeWebAssemblyPeepholePass(PassRegistry &); 81138593Ssamvoid initializeWebAssemblyCallIndirectFixupPass(PassRegistry &); 82138593Ssam 83138593Ssam} // end namespace llvm 84166956Ssam 85166956Ssam#endif 86166956Ssam