diff options
author | Dan Gohman <dan433584@gmail.com> | 2015-09-03 22:51:53 +0000 |
---|---|---|
committer | Dan Gohman <dan433584@gmail.com> | 2015-09-03 22:51:53 +0000 |
commit | c285307e1457c4db2346443a4336e672d7487111 (patch) | |
tree | c802922c6e228f80d4ca3cfd6fbdfd16c6179f0f /clang/lib/Driver/ToolChains.cpp | |
parent | e6702ca0e24fd6674770f3cac7e2b0e590e095bb (diff) | |
download | bcm5719-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.cpp | 29 |
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"); +} |