summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains.cpp
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2015-09-03 22:51:53 +0000
committerDan Gohman <dan433584@gmail.com>2015-09-03 22:51:53 +0000
commitc285307e1457c4db2346443a4336e672d7487111 (patch)
treec802922c6e228f80d4ca3cfd6fbdfd16c6179f0f /clang/lib/Driver/ToolChains.cpp
parente6702ca0e24fd6674770f3cac7e2b0e590e095bb (diff)
downloadbcm5719-llvm-c285307e1457c4db2346443a4336e672d7487111.tar.gz
bcm5719-llvm-c285307e1457c4db2346443a4336e672d7487111.zip
[WebAssembly] Initial WebAssembly support in clang
This implements basic support for compiling (though not yet assembling or linking) for a WebAssembly target. Note that ABI details are not yet finalized, and may change. Differential Revision: http://reviews.llvm.org/D12002 llvm-svn: 246814
Diffstat (limited to 'clang/lib/Driver/ToolChains.cpp')
-rw-r--r--clang/lib/Driver/ToolChains.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index 91317d601a8..d7989a7993f 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -3937,3 +3937,32 @@ Tool *SHAVEToolChain::buildAssembler() const {
// assembler to the driver, except not the way it expects.
llvm_unreachable("SHAVEToolChain can't buildAssembler");
}
+
+bool WebAssembly::IsMathErrnoDefault() const { return false; }
+
+bool WebAssembly::IsObjCNonFragileABIDefault() const { return true; }
+
+bool WebAssembly::UseObjCMixedDispatch() const { return true; }
+
+bool WebAssembly::isPICDefault() const { return false; }
+
+bool WebAssembly::isPIEDefault() const { return false; }
+
+bool WebAssembly::isPICDefaultForced() const { return false; }
+
+bool WebAssembly::IsIntegratedAssemblerDefault() const { return true; }
+
+// TODO: Support Objective C stuff.
+bool WebAssembly::SupportsObjCGC() const { return false; }
+
+bool WebAssembly::hasBlocksRuntime() const { return false; }
+
+// TODO: Support profiling.
+bool WebAssembly::SupportsProfiling() const { return false; }
+
+void WebAssembly::addClangTargetOptions(const ArgList &DriverArgs,
+ ArgStringList &CC1Args) const {
+ if (DriverArgs.hasFlag(options::OPT_fuse_init_array,
+ options::OPT_fno_use_init_array, true))
+ CC1Args.push_back("-fuse-init-array");
+}
OpenPOWER on IntegriCloud