aheejin created this revision. aheejin added a reviewer: dschuff. Herald added subscribers: cfe-commits, sunfish, jgravelle-google, sbc100, jfb.
Add exception handling option to clang. Repository: rC Clang https://reviews.llvm.org/D43681 Files: docs/ClangCommandLineReference.rst include/clang/Driver/Options.td lib/Basic/Targets/WebAssembly.cpp lib/Basic/Targets/WebAssembly.h Index: lib/Basic/Targets/WebAssembly.h =================================================================== --- lib/Basic/Targets/WebAssembly.h +++ lib/Basic/Targets/WebAssembly.h @@ -32,11 +32,12 @@ bool HasNontrappingFPToInt; bool HasSignExt; + bool HasExceptionHandling; public: explicit WebAssemblyTargetInfo(const llvm::Triple &T, const TargetOptions &) : TargetInfo(T), SIMDLevel(NoSIMD), HasNontrappingFPToInt(false), - HasSignExt(false) { + HasSignExt(false), HasExceptionHandling(false) { NoAsmVariants = true; SuitableAlign = 128; LargeArrayMinWidth = 128; Index: lib/Basic/Targets/WebAssembly.cpp =================================================================== --- lib/Basic/Targets/WebAssembly.cpp +++ lib/Basic/Targets/WebAssembly.cpp @@ -37,6 +37,7 @@ .Case("simd128", SIMDLevel >= SIMD128) .Case("nontrapping-fptoint", HasNontrappingFPToInt) .Case("sign-ext", HasSignExt) + .Case("exception-handling", HasExceptionHandling) .Default(false); } @@ -83,6 +84,14 @@ HasSignExt = false; continue; } + if (Feature == "+exception-handling") { + HasExceptionHandling = true; + continue; + } + if (Feature == "-exception-handling") { + HasExceptionHandling = false; + continue; + } Diags.Report(diag::err_opt_not_valid_with_opt) << Feature << "-target-feature"; Index: include/clang/Driver/Options.td =================================================================== --- include/clang/Driver/Options.td +++ include/clang/Driver/Options.td @@ -1902,6 +1902,8 @@ def mno_nontrapping_fptoint : Flag<["-"], "mno-nontrapping-fptoint">, Group<m_wasm_Features_Group>; def msign_ext : Flag<["-"], "msign-ext">, Group<m_wasm_Features_Group>; def mno_sign_ext : Flag<["-"], "mno-sign-ext">, Group<m_wasm_Features_Group>; +def mexception_handing : Flag<["-"], "mexception-handling">, Group<m_wasm_Features_Group>; +def mno_exception_handing : Flag<["-"], "mno-exception-handling">, Group<m_wasm_Features_Group>; def mamdgpu_debugger_abi : Joined<["-"], "mamdgpu-debugger-abi=">, Flags<[HelpHidden]>, Index: docs/ClangCommandLineReference.rst =================================================================== --- docs/ClangCommandLineReference.rst +++ docs/ClangCommandLineReference.rst @@ -2352,6 +2352,8 @@ .. option:: -msimd128, -mno-simd128 +.. option:: -mexception-handling, -mno-exception-handling + X86 --- .. option:: -m3dnow, -mno-3dnow
Index: lib/Basic/Targets/WebAssembly.h =================================================================== --- lib/Basic/Targets/WebAssembly.h +++ lib/Basic/Targets/WebAssembly.h @@ -32,11 +32,12 @@ bool HasNontrappingFPToInt; bool HasSignExt; + bool HasExceptionHandling; public: explicit WebAssemblyTargetInfo(const llvm::Triple &T, const TargetOptions &) : TargetInfo(T), SIMDLevel(NoSIMD), HasNontrappingFPToInt(false), - HasSignExt(false) { + HasSignExt(false), HasExceptionHandling(false) { NoAsmVariants = true; SuitableAlign = 128; LargeArrayMinWidth = 128; Index: lib/Basic/Targets/WebAssembly.cpp =================================================================== --- lib/Basic/Targets/WebAssembly.cpp +++ lib/Basic/Targets/WebAssembly.cpp @@ -37,6 +37,7 @@ .Case("simd128", SIMDLevel >= SIMD128) .Case("nontrapping-fptoint", HasNontrappingFPToInt) .Case("sign-ext", HasSignExt) + .Case("exception-handling", HasExceptionHandling) .Default(false); } @@ -83,6 +84,14 @@ HasSignExt = false; continue; } + if (Feature == "+exception-handling") { + HasExceptionHandling = true; + continue; + } + if (Feature == "-exception-handling") { + HasExceptionHandling = false; + continue; + } Diags.Report(diag::err_opt_not_valid_with_opt) << Feature << "-target-feature"; Index: include/clang/Driver/Options.td =================================================================== --- include/clang/Driver/Options.td +++ include/clang/Driver/Options.td @@ -1902,6 +1902,8 @@ def mno_nontrapping_fptoint : Flag<["-"], "mno-nontrapping-fptoint">, Group<m_wasm_Features_Group>; def msign_ext : Flag<["-"], "msign-ext">, Group<m_wasm_Features_Group>; def mno_sign_ext : Flag<["-"], "mno-sign-ext">, Group<m_wasm_Features_Group>; +def mexception_handing : Flag<["-"], "mexception-handling">, Group<m_wasm_Features_Group>; +def mno_exception_handing : Flag<["-"], "mno-exception-handling">, Group<m_wasm_Features_Group>; def mamdgpu_debugger_abi : Joined<["-"], "mamdgpu-debugger-abi=">, Flags<[HelpHidden]>, Index: docs/ClangCommandLineReference.rst =================================================================== --- docs/ClangCommandLineReference.rst +++ docs/ClangCommandLineReference.rst @@ -2352,6 +2352,8 @@ .. option:: -msimd128, -mno-simd128 +.. option:: -mexception-handling, -mno-exception-handling + X86 --- .. option:: -m3dnow, -mno-3dnow
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits