diff options
author | chenglin.bi <chenglin.bi@cixcomputing.com> | 2022-10-03 21:20:33 +0800 |
---|---|---|
committer | chenglin.bi <chenglin.bi@cixcomputing.com> | 2022-10-03 21:20:51 +0800 |
commit | b0fff3db6ada11e42a28389bb2b0c48181e2f719 (patch) | |
tree | f5a27c2866224784fbb76e4b63e085b6d10d6370 /clang/lib/Driver/Driver.cpp | |
parent | 248237364b7df8b3216a9f44ffceeff6807eaa97 (diff) | |
download | llvm-b0fff3db6ada11e42a28389bb2b0c48181e2f719.zip llvm-b0fff3db6ada11e42a28389bb2b0c48181e2f719.tar.gz llvm-b0fff3db6ada11e42a28389bb2b0c48181e2f719.tar.bz2 |
[ARM64EC][clang-cl] Add /arm64EC flag
Reviewed By: DavidSpickett
Differential Revision: https://reviews.llvm.org/D134788
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r-- | clang/lib/Driver/Driver.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index a4bd2de..be62ce5 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -1256,6 +1256,8 @@ Compilation *Driver::BuildCompilation(ArrayRef<const char *> ArgList) { T.setVendor(llvm::Triple::PC); T.setEnvironment(llvm::Triple::MSVC); T.setObjectFormat(llvm::Triple::COFF); + if (Args.hasArg(options::OPT__SLASH_arm64EC)) + T.setArch(llvm::Triple::aarch64, llvm::Triple::AArch64SubArch_arm64ec); TargetTriple = T.str(); } else if (IsDXCMode()) { // Build TargetTriple from target_profile option for clang-dxc. @@ -1380,6 +1382,14 @@ Compilation *Driver::BuildCompilation(ArrayRef<const char *> ArgList) { const ToolChain &TC = getToolChain( *UArgs, computeTargetTriple(*this, TargetTriple, *UArgs)); + // Report warning when arm64EC option is overridden by specified target + if ((TC.getTriple().getArch() != llvm::Triple::aarch64 || + TC.getTriple().getSubArch() != llvm::Triple::AArch64SubArch_arm64ec) && + UArgs->hasArg(options::OPT__SLASH_arm64EC)) { + getDiags().Report(clang::diag::warn_target_override_arm64ec) + << TC.getTriple().str(); + } + // The compilation takes ownership of Args. Compilation *C = new Compilation(*this, TC, UArgs.release(), TranslatedArgs, ContainsError); |