Taints the non-acquire RMW's store address with the load part
[oota-llvm.git] / lib / Target / WebAssembly / WebAssembly.td
1 //- WebAssembly.td - Describe the WebAssembly Target Machine --*- tablegen -*-//
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 is a target description file for the WebAssembly architecture,
12 /// which is also known as "wasm".
13 ///
14 //===----------------------------------------------------------------------===//
15
16 //===----------------------------------------------------------------------===//
17 // Target-independent interfaces which we are implementing
18 //===----------------------------------------------------------------------===//
19
20 include "llvm/Target/Target.td"
21
22 //===----------------------------------------------------------------------===//
23 // WebAssembly Subtarget features.
24 //===----------------------------------------------------------------------===//
25
26 def FeatureSIMD128 : SubtargetFeature<"simd128", "HasSIMD128", "false",
27                                       "Enable 128-bit SIMD">;
28
29 //===----------------------------------------------------------------------===//
30 // Architectures.
31 //===----------------------------------------------------------------------===//
32
33 //===----------------------------------------------------------------------===//
34 // Register File Description
35 //===----------------------------------------------------------------------===//
36
37 include "WebAssemblyRegisterInfo.td"
38
39 //===----------------------------------------------------------------------===//
40 // Instruction Descriptions
41 //===----------------------------------------------------------------------===//
42
43 include "WebAssemblyInstrInfo.td"
44
45 def WebAssemblyInstrInfo : InstrInfo;
46
47 //===----------------------------------------------------------------------===//
48 // WebAssembly Processors supported.
49 //===----------------------------------------------------------------------===//
50
51 // Minimal Viable Product.
52 def : ProcessorModel<"mvp", NoSchedModel, []>;
53
54 // Generic processor: latest stable version.
55 def : ProcessorModel<"generic", NoSchedModel, []>;
56
57 // Latest and greatest experimental version of WebAssembly. Bugs included!
58 def : ProcessorModel<"bleeding-edge", NoSchedModel, [FeatureSIMD128]>;
59
60 //===----------------------------------------------------------------------===//
61 // Target Declaration
62 //===----------------------------------------------------------------------===//
63
64 def WebAssembly : Target {
65   let InstructionSet = WebAssemblyInstrInfo;
66 }