[PATCH] D100024: [clang] Check AuxTarget exists when creating target in CompilerInstance.
Tommy Chiang via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 7 00:52:24 PDT 2021
oToToT created this revision.
oToToT added reviewers: sammccall, kadircet.
oToToT added a project: clang.
oToToT requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added subscribers: cfe-commits, sstefan1.
D97493 <https://reviews.llvm.org/D97493> separate target creation out to a single function `CompilerInstance::createTarget`. However, it would overwrite AuxTarget even if it has been set.
As @kadircet recommended in D98128 <https://reviews.llvm.org/D98128>, this patch check the existence of AuxTarget and not overwrite it when it has been set.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D100024
Files:
clang/include/clang/Frontend/CompilerInstance.h
clang/lib/Frontend/CompilerInstance.cpp
Index: clang/lib/Frontend/CompilerInstance.cpp
===================================================================
--- clang/lib/Frontend/CompilerInstance.cpp
+++ clang/lib/Frontend/CompilerInstance.cpp
@@ -104,8 +104,10 @@
if (!hasTarget())
return false;
- // Create TargetInfo for the other side of CUDA/OpenMP/SYCL compilation.
- if ((getLangOpts().CUDA || getLangOpts().OpenMPIsDevice ||
+ // Check whether AuxTarget exists, if not, then create TargetInfo for the
+ // other side of CUDA/OpenMP/SYCL compilation.
+ if (!hasAuxTarget() &&
+ (getLangOpts().CUDA || getLangOpts().OpenMPIsDevice ||
getLangOpts().SYCLIsDevice) &&
!getFrontendOpts().AuxTriple.empty()) {
auto TO = std::make_shared<TargetOptions>();
Index: clang/include/clang/Frontend/CompilerInstance.h
===================================================================
--- clang/include/clang/Frontend/CompilerInstance.h
+++ clang/include/clang/Frontend/CompilerInstance.h
@@ -377,6 +377,8 @@
/// @name AuxTarget Info
/// {
+ bool hasAuxTarget() const { return AuxTarget != nullptr; }
+
TargetInfo *getAuxTarget() const { return AuxTarget.get(); }
/// Replace the current AuxTarget.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D100024.335739.patch
Type: text/x-patch
Size: 1209 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210407/58ff0b3c/attachment.bin>
More information about the cfe-commits
mailing list