LLVM  3.7.0
WebAssemblyISelLowering.h
Go to the documentation of this file.
1 //- WebAssemblyISelLowering.h - WebAssembly DAG Lowering Interface -*- 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 defines the interfaces that WebAssembly uses to lower LLVM
12 /// code into a selection DAG.
13 ///
14 //===----------------------------------------------------------------------===//
15 
16 #ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYISELLOWERING_H
17 #define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYISELLOWERING_H
18 
20 
21 namespace llvm {
22 
23 namespace WebAssemblyISD {
24 
25 enum {
27 
28  // add memory opcodes starting at ISD::FIRST_TARGET_MEMORY_OPCODE here...
29 };
30 
31 } // end namespace WebAssemblyISD
32 
33 class WebAssemblySubtarget;
34 class WebAssemblyTargetMachine;
35 
37 public:
39  const WebAssemblySubtarget &STI);
40 
41 private:
42  /// Keep a pointer to the WebAssemblySubtarget around so that we can make the
43  /// right decision when generating code for different targets.
44  const WebAssemblySubtarget *Subtarget;
45 };
46 
47 } // end namespace llvm
48 
49 #endif
BUILTIN_OP_END - This must be the last enum value in this list.
Definition: ISDOpcodes.h:724
This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...
WebAssemblyTargetLowering(const TargetMachine &TM, const WebAssemblySubtarget &STI)
Primary interface to the complete machine description for the target machine.
This file describes how to lower LLVM code to machine code.