summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2019-01-15 06:58:16 +0000
committerDan Gohman <dan433584@gmail.com>2019-01-15 06:58:16 +0000
commit055a6f0462ea2bc59127a446fa00fb66dc354fc1 (patch)
tree15ef679f993855fd668424e973ccd71327eb2445 /clang/lib/Basic
parent1839dfd6d44fb9c0b9b352fc7ecbabac90cc1c7e (diff)
downloadbcm5719-llvm-055a6f0462ea2bc59127a446fa00fb66dc354fc1.tar.gz
bcm5719-llvm-055a6f0462ea2bc59127a446fa00fb66dc354fc1.zip
[WebAssembly] Support multilibs for wasm32 and add a wasm OS that uses it
This adds support for multilib paths for wasm32 targets, following [Debian's Multiarch conventions], and also adds an experimental OS name in order to test it. [Debian's Multiarch conventions]: https://wiki.debian.org/Multiarch/ Differential Revision: https://reviews.llvm.org/D56553 llvm-svn: 351164
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index f79da4e5761..fd201a9adda 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -572,17 +572,19 @@ TargetInfo *AllocateTarget(const llvm::Triple &Triple,
case llvm::Triple::wasm32:
if (Triple.getSubArch() != llvm::Triple::NoSubArch ||
Triple.getVendor() != llvm::Triple::UnknownVendor ||
- Triple.getOS() != llvm::Triple::UnknownOS ||
- Triple.getEnvironment() != llvm::Triple::UnknownEnvironment ||
- !(Triple.isOSBinFormatELF() || Triple.isOSBinFormatWasm()))
+ !Triple.isOSBinFormatWasm())
+ return nullptr;
+ if (Triple.getOS() != llvm::Triple::UnknownOS &&
+ Triple.getOS() != llvm::Triple::COWS)
return nullptr;
return new WebAssemblyOSTargetInfo<WebAssembly32TargetInfo>(Triple, Opts);
case llvm::Triple::wasm64:
if (Triple.getSubArch() != llvm::Triple::NoSubArch ||
Triple.getVendor() != llvm::Triple::UnknownVendor ||
- Triple.getOS() != llvm::Triple::UnknownOS ||
- Triple.getEnvironment() != llvm::Triple::UnknownEnvironment ||
- !(Triple.isOSBinFormatELF() || Triple.isOSBinFormatWasm()))
+ !Triple.isOSBinFormatWasm())
+ return nullptr;
+ if (Triple.getOS() != llvm::Triple::UnknownOS &&
+ Triple.getOS() != llvm::Triple::COWS)
return nullptr;
return new WebAssemblyOSTargetInfo<WebAssembly64TargetInfo>(Triple, Opts);
OpenPOWER on IntegriCloud