summaryrefslogtreecommitdiff
path: root/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h')
-rw-r--r--contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h115
1 files changed, 0 insertions, 115 deletions
diff --git a/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h b/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
deleted file mode 100644
index 8db2120f9834..000000000000
--- a/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
+++ /dev/null
@@ -1,115 +0,0 @@
-//=- WebAssemblySubtarget.h - Define Subtarget for the WebAssembly -*- C++ -*-//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-///
-/// \file
-/// This file declares the WebAssembly-specific subclass of
-/// TargetSubtarget.
-///
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYSUBTARGET_H
-#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYSUBTARGET_H
-
-#include "WebAssemblyFrameLowering.h"
-#include "WebAssemblyISelLowering.h"
-#include "WebAssemblyInstrInfo.h"
-#include "WebAssemblySelectionDAGInfo.h"
-#include "llvm/CodeGen/TargetSubtargetInfo.h"
-#include <string>
-
-#define GET_SUBTARGETINFO_ENUM
-#define GET_SUBTARGETINFO_HEADER
-#include "WebAssemblyGenSubtargetInfo.inc"
-
-namespace llvm {
-
-// Defined in WebAssemblyGenSubtargetInfo.inc.
-extern const SubtargetFeatureKV
- WebAssemblyFeatureKV[WebAssembly::NumSubtargetFeatures];
-
-class WebAssemblySubtarget final : public WebAssemblyGenSubtargetInfo {
- enum SIMDEnum {
- NoSIMD,
- SIMD128,
- UnimplementedSIMD128,
- } SIMDLevel = NoSIMD;
-
- bool HasAtomics = false;
- bool HasNontrappingFPToInt = false;
- bool HasSignExt = false;
- bool HasExceptionHandling = false;
- bool HasBulkMemory = false;
- bool HasMultivalue = false;
- bool HasMutableGlobals = false;
- bool HasTailCall = false;
-
- /// String name of used CPU.
- std::string CPUString;
-
- /// What processor and OS we're targeting.
- Triple TargetTriple;
-
- WebAssemblyFrameLowering FrameLowering;
- WebAssemblyInstrInfo InstrInfo;
- WebAssemblySelectionDAGInfo TSInfo;
- WebAssemblyTargetLowering TLInfo;
-
- /// Initializes using CPUString and the passed in feature string so that we
- /// can use initializer lists for subtarget initialization.
- WebAssemblySubtarget &initializeSubtargetDependencies(StringRef FS);
-
-public:
- /// This constructor initializes the data members to match that
- /// of the specified triple.
- WebAssemblySubtarget(const Triple &TT, const std::string &CPU,
- const std::string &FS, const TargetMachine &TM);
-
- const WebAssemblySelectionDAGInfo *getSelectionDAGInfo() const override {
- return &TSInfo;
- }
- const WebAssemblyFrameLowering *getFrameLowering() const override {
- return &FrameLowering;
- }
- const WebAssemblyTargetLowering *getTargetLowering() const override {
- return &TLInfo;
- }
- const WebAssemblyInstrInfo *getInstrInfo() const override {
- return &InstrInfo;
- }
- const WebAssemblyRegisterInfo *getRegisterInfo() const override {
- return &getInstrInfo()->getRegisterInfo();
- }
- const Triple &getTargetTriple() const { return TargetTriple; }
- bool enableAtomicExpand() const override;
- bool enableIndirectBrExpand() const override { return true; }
- bool enableMachineScheduler() const override;
- bool useAA() const override;
-
- // Predicates used by WebAssemblyInstrInfo.td.
- bool hasAddr64() const { return TargetTriple.isArch64Bit(); }
- bool hasSIMD128() const { return SIMDLevel >= SIMD128; }
- bool hasUnimplementedSIMD128() const {
- return SIMDLevel >= UnimplementedSIMD128;
- }
- bool hasAtomics() const { return HasAtomics; }
- bool hasNontrappingFPToInt() const { return HasNontrappingFPToInt; }
- bool hasSignExt() const { return HasSignExt; }
- bool hasExceptionHandling() const { return HasExceptionHandling; }
- bool hasBulkMemory() const { return HasBulkMemory; }
- bool hasMultivalue() const { return HasMultivalue; }
- bool hasMutableGlobals() const { return HasMutableGlobals; }
- bool hasTailCall() const { return HasTailCall; }
-
- /// Parses features string setting specified subtarget options. Definition of
- /// function is auto generated by tblgen.
- void ParseSubtargetFeatures(StringRef CPU, StringRef FS);
-};
-
-} // end namespace llvm
-
-#endif