blob: 957f31cae2222f73b75301942261e2df2b6388fe [file] [log] [blame]
Dan Gohman10e730a2015-06-29 23:51:55 +00001//===-- 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/Support/CodeGen.h"
20
21namespace llvm {
22
23class WebAssemblyTargetMachine;
24class FunctionPass;
25
Dan Gohman0cfb5f82016-05-10 04:24:02 +000026// LLVM IR passes.
Dan Gohman81719f82015-11-25 16:55:01 +000027FunctionPass *createWebAssemblyOptimizeReturned();
28
Dan Gohman0cfb5f82016-05-10 04:24:02 +000029// ISel and immediate followup passes.
Dan Gohman10e730a2015-06-29 23:51:55 +000030FunctionPass *createWebAssemblyISelDag(WebAssemblyTargetMachine &TM,
31 CodeGenOpt::Level OptLevel);
Dan Gohman1cf96c02015-12-09 16:23:59 +000032FunctionPass *createWebAssemblyArgumentMove();
Dan Gohmanbb372242016-01-26 03:39:31 +000033FunctionPass *createWebAssemblySetP2AlignOperands();
Dan Gohman10e730a2015-06-29 23:51:55 +000034
Dan Gohman0cfb5f82016-05-10 04:24:02 +000035// Late passes.
36FunctionPass *createWebAssemblyReplacePhysRegs();
37FunctionPass *createWebAssemblyPrepareForLiveIntervals();
38FunctionPass *createWebAssemblyOptimizeLiveIntervals();
Dan Gohman81719f82015-11-25 16:55:01 +000039FunctionPass *createWebAssemblyStoreResults();
Dan Gohman1462faa2015-11-16 16:18:28 +000040FunctionPass *createWebAssemblyRegStackify();
41FunctionPass *createWebAssemblyRegColoring();
Dan Gohmand7a2eea2016-03-09 02:01:14 +000042FunctionPass *createWebAssemblyFixIrreducibleControlFlow();
Dan Gohman950a13c2015-09-16 16:51:30 +000043FunctionPass *createWebAssemblyCFGStackify();
Dan Gohmanf0b165a2015-12-05 03:03:35 +000044FunctionPass *createWebAssemblyLowerBrUnless();
Dan Gohmancf4748f2015-11-12 17:04:33 +000045FunctionPass *createWebAssemblyRegNumbering();
Dan Gohman81719f82015-11-25 16:55:01 +000046FunctionPass *createWebAssemblyPeephole();
Dan Gohman950a13c2015-09-16 16:51:30 +000047
Dan Gohman10e730a2015-06-29 23:51:55 +000048} // end namespace llvm
49
50#endif