summaryrefslogtreecommitdiff
path: root/lib/Basic/Targets/WebAssembly.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Basic/Targets/WebAssembly.h')
-rw-r--r--lib/Basic/Targets/WebAssembly.h15
1 files changed, 5 insertions, 10 deletions
diff --git a/lib/Basic/Targets/WebAssembly.h b/lib/Basic/Targets/WebAssembly.h
index c04c5cb6fb3a9..3dea9a373cb4f 100644
--- a/lib/Basic/Targets/WebAssembly.h
+++ b/lib/Basic/Targets/WebAssembly.h
@@ -28,7 +28,8 @@ class LLVM_LIBRARY_VISIBILITY WebAssemblyTargetInfo : public TargetInfo {
enum SIMDEnum {
NoSIMD,
SIMD128,
- } SIMDLevel;
+ UnimplementedSIMD128,
+ } SIMDLevel = NoSIMD;
bool HasNontrappingFPToInt;
bool HasSignExt;
@@ -59,18 +60,12 @@ protected:
MacroBuilder &Builder) const override;
private:
+ static void setSIMDLevel(llvm::StringMap<bool> &Features, SIMDEnum Level);
+
bool
initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags,
StringRef CPU,
- const std::vector<std::string> &FeaturesVec) const override {
- if (CPU == "bleeding-edge") {
- Features["simd128"] = true;
- Features["nontrapping-fptoint"] = true;
- Features["sign-ext"] = true;
- }
- return TargetInfo::initFeatureMap(Features, Diags, CPU, FeaturesVec);
- }
-
+ const std::vector<std::string> &FeaturesVec) const override;
bool hasFeature(StringRef Feature) const final;
bool handleTargetFeatures(std::vector<std::string> &Features,