Skip to content

Commit 4f39519

Browse files
committed
Merge from 'master' to 'sycl-web' (#100)
CONFLICT (content): Merge conflict in clang/lib/Driver/ToolChains/Clang.cpp
2 parents 6af2069 + e372c1d commit 4f39519

File tree

226 files changed

+6624
-2178
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

226 files changed

+6624
-2178
lines changed

clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ struct UnqualNameVisitor : public RecursiveASTVisitor<UnqualNameVisitor> {
6666
->getName()))
6767
return false;
6868
break;
69+
case TypeLoc::Typedef:
70+
if (VisitUnqualName(
71+
TL.getAs<TypedefTypeLoc>().getTypePtr()->getDecl()->getName()))
72+
return false;
73+
break;
6974
default:
7075
break;
7176
}

clang-tools-extra/clang-tidy/readability/FunctionCognitiveComplexityCheck.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@ void FunctionCognitiveComplexityCheck::check(
533533
// Increase, on the other hand, can be 0.
534534

535535
diag(Detail.Loc, Msgs[MsgId], DiagnosticIDs::Note)
536-
<< Increase << Detail.Nesting << 1 + Detail.Nesting;
536+
<< (unsigned)Increase << (unsigned)Detail.Nesting << 1 + Detail.Nesting;
537537
}
538538
}
539539

clang-tools-extra/test/clang-tidy/checkers/modernize-use-trailing-return-type.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,16 @@ namespace std {
99

1010
class string;
1111

12-
class ostream;
12+
template <typename T>
13+
class basic_ostream;
14+
15+
using ostream = basic_ostream<char>;
1316

1417
template <typename T>
1518
auto declval() -> T;
19+
20+
template <typename... Ts>
21+
class tuple;
1622
}
1723

1824
//
@@ -527,6 +533,10 @@ std::array<int, Size> j6(unsigned Size);
527533
std::array<decltype(Size), (Size * 2) + 1> j8(unsigned Size);
528534
// CHECK-MESSAGES: :[[@LINE-1]]:44: warning: use a trailing return type for this function [modernize-use-trailing-return-type]
529535
// CHECK-FIXES: {{^}}std::array<decltype(Size), (Size * 2) + 1> j8(unsigned Size);{{$}}
536+
using std::ostream;
537+
std::tuple<int, std::string, ostream>& operator<<(ostream& ostream, float i);
538+
// CHECK-MESSAGES: :[[@LINE-1]]:40: warning: use a trailing return type for this function [modernize-use-trailing-return-type]
539+
// CHECK-FIXES: {{^}}std::tuple<int, std::string, ostream>& operator<<(ostream& ostream, float i);{{$}}
530540

531541
class CC {
532542
int Object;
@@ -552,7 +562,6 @@ Object DD::g() {
552562
// bug 44206, no rewrite should happen due to collision with parameter name
553563
//
554564

555-
using std::ostream;
556565
ostream& operator<<(ostream& ostream, int i);
557566
// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: use a trailing return type for this function [modernize-use-trailing-return-type]
558567
// CHECK-FIXES: {{^}}ostream& operator<<(ostream& ostream, int i);{{$}}

clang/include/clang/AST/DeclObjC.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2178,8 +2178,8 @@ class ObjCProtocolDecl : public ObjCContainerDecl,
21782178
data().ReferencedProtocols.set(List, Num, Locs, C);
21792179
}
21802180

2181-
/// This is true iff the protocol is tagged with the `objc_static_protocol`
2182-
/// attribute.
2181+
/// This is true iff the protocol is tagged with the
2182+
/// `objc_non_runtime_protocol` attribute.
21832183
bool isNonRuntimeProtocol() const;
21842184

21852185
/// Get the set of all protocols implied by this protocols inheritance

clang/include/clang/Basic/Builtins.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,6 +1028,7 @@ LIBBUILTIN(pthread_create, "", "fC<2,3>", "pthread.h", ALL_GNU_LANGUAGES)
10281028

10291029
// POSIX setjmp.h
10301030

1031+
// FIXME: MinGW _setjmp has an additional void* parameter.
10311032
LIBBUILTIN(_setjmp, "iJ", "fjT", "setjmp.h", ALL_LANGUAGES)
10321033
LIBBUILTIN(__sigsetjmp, "iSJi", "fjT", "setjmp.h", ALL_LANGUAGES)
10331034
LIBBUILTIN(sigsetjmp, "iSJi", "fjT", "setjmp.h", ALL_LANGUAGES)

clang/include/clang/Basic/BuiltinsPPC.def

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,11 @@ BUILTIN(__builtin_vsx_xxeval, "V2ULLiV2ULLiV2ULLiV2ULLiIi", "")
558558

559559
BUILTIN(__builtin_vsx_xvtlsbb, "iV16UcUi", "")
560560

561+
BUILTIN(__builtin_vsx_xvtdivdp, "iV2dV2d", "")
562+
BUILTIN(__builtin_vsx_xvtdivsp, "iV4fV4f", "")
563+
BUILTIN(__builtin_vsx_xvtsqrtdp, "iV2d", "")
564+
BUILTIN(__builtin_vsx_xvtsqrtsp, "iV4f", "")
565+
561566
// P10 Vector Permute Extended built-in.
562567
BUILTIN(__builtin_vsx_xxpermx, "V16UcV16UcV16UcV16UcIi", "")
563568

clang/include/clang/Basic/BuiltinsX86.def

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1901,23 +1901,17 @@ TARGET_BUILTIN(__builtin_ia32_enqcmd, "Ucv*vC*", "n", "enqcmd")
19011901
TARGET_BUILTIN(__builtin_ia32_enqcmds, "Ucv*vC*", "n", "enqcmd")
19021902

19031903
// KEY LOCKER
1904-
TARGET_BUILTIN(__builtin_ia32_loadiwkey, "vUiV2OiV2OiV2Oi", "nV:128:", "kl")
1905-
TARGET_BUILTIN(__builtin_ia32_encodekey128,
1906-
"UiUiV2OiV2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*", "nV:128:", "kl")
1907-
TARGET_BUILTIN(__builtin_ia32_encodekey256,
1908-
"UiUiV2OiV2OiV2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*", "nV:128:", "kl")
1909-
TARGET_BUILTIN(__builtin_ia32_aesenc128kl, "UcV2Oi*V2OivC*", "nV:128:", "kl")
1910-
TARGET_BUILTIN(__builtin_ia32_aesenc256kl, "UcV2Oi*V2OivC*", "nV:128:", "kl")
1911-
TARGET_BUILTIN(__builtin_ia32_aesdec128kl, "UcV2Oi*V2OivC*", "nV:128:", "kl")
1912-
TARGET_BUILTIN(__builtin_ia32_aesdec256kl, "UcV2Oi*V2OivC*", "nV:128:", "kl")
1913-
TARGET_BUILTIN(__builtin_ia32_aesencwide128kl,
1914-
"UcvC*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2OiV2OiV2OiV2OiV2OiV2OiV2OiV2Oi", "nV:128:", "kl,widekl")
1915-
TARGET_BUILTIN(__builtin_ia32_aesencwide256kl,
1916-
"UcvC*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2OiV2OiV2OiV2OiV2OiV2OiV2OiV2Oi", "nV:128:", "kl,widekl")
1917-
TARGET_BUILTIN(__builtin_ia32_aesdecwide128kl,
1918-
"UcvC*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2OiV2OiV2OiV2OiV2OiV2OiV2OiV2Oi", "nV:128:", "kl,widekl")
1919-
TARGET_BUILTIN(__builtin_ia32_aesdecwide256kl,
1920-
"UcvC*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2Oi*V2OiV2OiV2OiV2OiV2OiV2OiV2OiV2Oi", "nV:128:", "kl,widekl")
1904+
TARGET_BUILTIN(__builtin_ia32_loadiwkey, "vV2OiV2OiV2OiUi", "nV:128:", "kl")
1905+
TARGET_BUILTIN(__builtin_ia32_encodekey128_u32, "UiUiV2Oiv*", "nV:128:", "kl")
1906+
TARGET_BUILTIN(__builtin_ia32_encodekey256_u32, "UiUiV2OiV2Oiv*", "nV:128:", "kl")
1907+
TARGET_BUILTIN(__builtin_ia32_aesenc128kl_u8, "UcV2Oi*V2OivC*", "nV:128:", "kl")
1908+
TARGET_BUILTIN(__builtin_ia32_aesenc256kl_u8, "UcV2Oi*V2OivC*", "nV:128:", "kl")
1909+
TARGET_BUILTIN(__builtin_ia32_aesdec128kl_u8, "UcV2Oi*V2OivC*", "nV:128:", "kl")
1910+
TARGET_BUILTIN(__builtin_ia32_aesdec256kl_u8, "UcV2Oi*V2OivC*", "nV:128:", "kl")
1911+
TARGET_BUILTIN(__builtin_ia32_aesencwide128kl_u8, "UcV2Oi*V2OiC*vC*", "nV:128:", "kl,widekl")
1912+
TARGET_BUILTIN(__builtin_ia32_aesencwide256kl_u8, "UcV2Oi*V2OiC*vC*", "nV:128:", "kl,widekl")
1913+
TARGET_BUILTIN(__builtin_ia32_aesdecwide128kl_u8, "UcV2Oi*V2OiC*vC*", "nV:128:", "kl,widekl")
1914+
TARGET_BUILTIN(__builtin_ia32_aesdecwide256kl_u8, "UcV2Oi*V2OiC*vC*", "nV:128:", "kl,widekl")
19211915

19221916
// SERIALIZE
19231917
TARGET_BUILTIN(__builtin_ia32_serialize, "v", "n", "serialize")

clang/include/clang/Basic/Cuda.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ const char *CudaVersionToString(CudaVersion V);
3737
CudaVersion CudaStringToVersion(const llvm::Twine &S);
3838

3939
enum class CudaArch {
40+
UNUSED,
4041
UNKNOWN,
4142
SM_20,
4243
SM_21,

clang/include/clang/Driver/Options.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -692,6 +692,9 @@ defm gpu_allow_device_init : OptInFFlag<"gpu-allow-device-init",
692692
def gpu_max_threads_per_block_EQ : Joined<["--"], "gpu-max-threads-per-block=">,
693693
Flags<[CC1Option]>,
694694
HelpText<"Default max threads per block for kernel launch bounds for HIP">;
695+
def gpu_instrument_lib_EQ : Joined<["--"], "gpu-instrument-lib=">,
696+
HelpText<"Instrument device library for HIP, which is a LLVM bitcode containing "
697+
"__cyg_profile_func_enter and __cyg_profile_func_exit">;
695698
def libomptarget_nvptx_path_EQ : Joined<["--"], "libomptarget-nvptx-path=">, Group<i_Group>,
696699
HelpText<"Path to libomptarget-nvptx libraries">;
697700
def dD : Flag<["-"], "dD">, Group<d_Group>, Flags<[CC1Option]>,

clang/include/clang/Driver/ToolChain.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -590,9 +590,6 @@ class ToolChain {
590590
// given compilation arguments.
591591
virtual UnwindLibType GetUnwindLibType(const llvm::opt::ArgList &Args) const;
592592

593-
// Detect the highest available version of libc++ in base path.
594-
virtual std::string detectLibcxxIncludePath(StringRef Base) const;
595-
596593
/// AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set
597594
/// the include paths to use for the given C++ standard library type.
598595
virtual void

clang/include/clang/Sema/Sema.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3354,6 +3354,8 @@ class Sema final {
33543354
bool CanPerformAggregateInitializationForOverloadResolution(
33553355
const InitializedEntity &Entity, InitListExpr *From);
33563356

3357+
bool IsStringInit(Expr *Init, const ArrayType *AT);
3358+
33573359
bool CanPerformCopyInitialization(const InitializedEntity &Entity,
33583360
ExprResult Init);
33593361
ExprResult PerformCopyInitialization(const InitializedEntity &Entity,

clang/lib/Basic/Cuda.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ struct CudaArchToStringMap {
6464
{ CudaArch::GFX##gpu, "gfx" #gpu, "compute_amdgcn" }
6565
CudaArchToStringMap arch_names[] = {
6666
// clang-format off
67+
{CudaArch::UNUSED, "", ""},
6768
SM2(20, "compute_20"), SM2(21, "compute_20"), // Fermi
6869
SM(30), SM(32), SM(35), SM(37), // Kepler
6970
SM(50), SM(52), SM(53), // Maxwell

clang/lib/Basic/Targets/NVPTX.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts,
207207
case CudaArch::GFX1031:
208208
case CudaArch::LAST:
209209
break;
210+
case CudaArch::UNUSED:
210211
case CudaArch::UNKNOWN:
211212
assert(false && "No GPU arch when compiling CUDA device code.");
212213
return "";

clang/lib/CodeGen/CGBuiltin.cpp

Lines changed: 85 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -3764,11 +3764,13 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
37643764
case Builtin::BI_abnormal_termination:
37653765
return RValue::get(EmitSEHAbnormalTermination());
37663766
case Builtin::BI_setjmpex:
3767-
if (getTarget().getTriple().isOSMSVCRT())
3767+
if (getTarget().getTriple().isOSMSVCRT() && E->getNumArgs() == 1 &&
3768+
E->getArg(0)->getType()->isPointerType())
37683769
return EmitMSVCRTSetJmp(*this, MSVCSetJmpKind::_setjmpex, E);
37693770
break;
37703771
case Builtin::BI_setjmp:
3771-
if (getTarget().getTriple().isOSMSVCRT()) {
3772+
if (getTarget().getTriple().isOSMSVCRT() && E->getNumArgs() == 1 &&
3773+
E->getArg(0)->getType()->isPointerType()) {
37723774
if (getTarget().getTriple().getArch() == llvm::Triple::x86)
37733775
return EmitMSVCRTSetJmp(*this, MSVCSetJmpKind::_setjmp3, E);
37743776
else if (getTarget().getTriple().getArch() == llvm::Triple::aarch64)
@@ -14043,89 +14045,98 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
1404314045
case X86::BI__builtin_ia32_psubusb128:
1404414046
case X86::BI__builtin_ia32_psubusw128:
1404514047
return EmitX86BinaryIntrinsic(*this, Ops, Intrinsic::usub_sat);
14046-
case X86::BI__builtin_ia32_encodekey128:
14047-
case X86::BI__builtin_ia32_encodekey256:
14048-
case X86::BI__builtin_ia32_aesenc128kl:
14049-
case X86::BI__builtin_ia32_aesdec128kl:
14050-
case X86::BI__builtin_ia32_aesenc256kl:
14051-
case X86::BI__builtin_ia32_aesdec256kl:
14052-
case X86::BI__builtin_ia32_aesencwide128kl:
14053-
case X86::BI__builtin_ia32_aesdecwide128kl:
14054-
case X86::BI__builtin_ia32_aesencwide256kl:
14055-
case X86::BI__builtin_ia32_aesdecwide256kl: {
14056-
int FirstReturnOp;
14057-
int ResultCount;
14058-
SmallVector<Value*, 9> InOps;
14059-
unsigned ID;
14048+
case X86::BI__builtin_ia32_encodekey128_u32: {
14049+
Intrinsic::ID IID = Intrinsic::x86_encodekey128;
1406014050

14051+
Value *Call = Builder.CreateCall(CGM.getIntrinsic(IID), {Ops[0], Ops[1]});
14052+
14053+
for (int i = 0; i < 6; ++i) {
14054+
Value *Extract = Builder.CreateExtractValue(Call, i + 1);
14055+
Value *Ptr = Builder.CreateConstGEP1_32(Ops[2], i * 16);
14056+
Ptr = Builder.CreateBitCast(
14057+
Ptr, llvm::PointerType::getUnqual(Extract->getType()));
14058+
Builder.CreateAlignedStore(Extract, Ptr, Align(1));
14059+
}
14060+
14061+
return Builder.CreateExtractValue(Call, 0);
14062+
}
14063+
case X86::BI__builtin_ia32_encodekey256_u32: {
14064+
Intrinsic::ID IID = Intrinsic::x86_encodekey256;
14065+
14066+
Value *Call =
14067+
Builder.CreateCall(CGM.getIntrinsic(IID), {Ops[0], Ops[1], Ops[2]});
14068+
14069+
for (int i = 0; i < 7; ++i) {
14070+
Value *Extract = Builder.CreateExtractValue(Call, i + 1);
14071+
Value *Ptr = Builder.CreateConstGEP1_32(Ops[3], i * 16);
14072+
Ptr = Builder.CreateBitCast(
14073+
Ptr, llvm::PointerType::getUnqual(Extract->getType()));
14074+
Builder.CreateAlignedStore(Extract, Ptr, Align(1));
14075+
}
14076+
14077+
return Builder.CreateExtractValue(Call, 0);
14078+
}
14079+
case X86::BI__builtin_ia32_aesenc128kl_u8:
14080+
case X86::BI__builtin_ia32_aesdec128kl_u8:
14081+
case X86::BI__builtin_ia32_aesenc256kl_u8:
14082+
case X86::BI__builtin_ia32_aesdec256kl_u8: {
14083+
Intrinsic::ID IID;
1406114084
switch (BuiltinID) {
14062-
default: llvm_unreachable("Unsupported intrinsic!");
14063-
case X86::BI__builtin_ia32_encodekey128:
14064-
ID = Intrinsic::x86_encodekey128;
14065-
InOps = {Ops[0], Ops[1]};
14066-
FirstReturnOp = 2;
14067-
ResultCount = 6;
14085+
default: llvm_unreachable("Unexpected builtin");
14086+
case X86::BI__builtin_ia32_aesenc128kl_u8:
14087+
IID = Intrinsic::x86_aesenc128kl;
1406814088
break;
14069-
case X86::BI__builtin_ia32_encodekey256:
14070-
ID = Intrinsic::x86_encodekey256;
14071-
InOps = {Ops[0], Ops[1], Ops[2]};
14072-
FirstReturnOp = 3;
14073-
ResultCount = 7;
14089+
case X86::BI__builtin_ia32_aesdec128kl_u8:
14090+
IID = Intrinsic::x86_aesdec128kl;
1407414091
break;
14075-
case X86::BI__builtin_ia32_aesenc128kl:
14076-
case X86::BI__builtin_ia32_aesdec128kl:
14077-
case X86::BI__builtin_ia32_aesenc256kl:
14078-
case X86::BI__builtin_ia32_aesdec256kl: {
14079-
InOps = {Ops[1], Ops[2]};
14080-
FirstReturnOp = 0;
14081-
ResultCount = 1;
14082-
switch (BuiltinID) {
14083-
case X86::BI__builtin_ia32_aesenc128kl:
14084-
ID = Intrinsic::x86_aesenc128kl;
14085-
break;
14086-
case X86::BI__builtin_ia32_aesdec128kl:
14087-
ID = Intrinsic::x86_aesdec128kl;
14088-
break;
14089-
case X86::BI__builtin_ia32_aesenc256kl:
14090-
ID = Intrinsic::x86_aesenc256kl;
14091-
break;
14092-
case X86::BI__builtin_ia32_aesdec256kl:
14093-
ID = Intrinsic::x86_aesdec256kl;
14094-
break;
14095-
}
14092+
case X86::BI__builtin_ia32_aesenc256kl_u8:
14093+
IID = Intrinsic::x86_aesenc256kl;
14094+
break;
14095+
case X86::BI__builtin_ia32_aesdec256kl_u8:
14096+
IID = Intrinsic::x86_aesdec256kl;
1409614097
break;
1409714098
}
14098-
case X86::BI__builtin_ia32_aesencwide128kl:
14099-
case X86::BI__builtin_ia32_aesdecwide128kl:
14100-
case X86::BI__builtin_ia32_aesencwide256kl:
14101-
case X86::BI__builtin_ia32_aesdecwide256kl: {
14102-
InOps = {Ops[0], Ops[9], Ops[10], Ops[11], Ops[12], Ops[13],
14103-
Ops[14], Ops[15], Ops[16]};
14104-
FirstReturnOp = 1;
14105-
ResultCount = 8;
14106-
switch (BuiltinID) {
14107-
case X86::BI__builtin_ia32_aesencwide128kl:
14108-
ID = Intrinsic::x86_aesencwide128kl;
14109-
break;
14110-
case X86::BI__builtin_ia32_aesdecwide128kl:
14111-
ID = Intrinsic::x86_aesdecwide128kl;
14112-
break;
14113-
case X86::BI__builtin_ia32_aesencwide256kl:
14114-
ID = Intrinsic::x86_aesencwide256kl;
14115-
break;
14116-
case X86::BI__builtin_ia32_aesdecwide256kl:
14117-
ID = Intrinsic::x86_aesdecwide256kl;
14118-
break;
14119-
}
14099+
14100+
Value *Call = Builder.CreateCall(CGM.getIntrinsic(IID), {Ops[1], Ops[2]});
14101+
14102+
Builder.CreateDefaultAlignedStore(Builder.CreateExtractValue(Call, 1),
14103+
Ops[0]);
14104+
14105+
return Builder.CreateExtractValue(Call, 0);
14106+
}
14107+
case X86::BI__builtin_ia32_aesencwide128kl_u8:
14108+
case X86::BI__builtin_ia32_aesdecwide128kl_u8:
14109+
case X86::BI__builtin_ia32_aesencwide256kl_u8:
14110+
case X86::BI__builtin_ia32_aesdecwide256kl_u8: {
14111+
Intrinsic::ID IID;
14112+
switch (BuiltinID) {
14113+
case X86::BI__builtin_ia32_aesencwide128kl_u8:
14114+
IID = Intrinsic::x86_aesencwide128kl;
14115+
break;
14116+
case X86::BI__builtin_ia32_aesdecwide128kl_u8:
14117+
IID = Intrinsic::x86_aesdecwide128kl;
14118+
break;
14119+
case X86::BI__builtin_ia32_aesencwide256kl_u8:
14120+
IID = Intrinsic::x86_aesencwide256kl;
14121+
break;
14122+
case X86::BI__builtin_ia32_aesdecwide256kl_u8:
14123+
IID = Intrinsic::x86_aesdecwide256kl;
1412014124
break;
1412114125
}
14126+
14127+
Value *InOps[9];
14128+
InOps[0] = Ops[2];
14129+
for (int i = 0; i != 8; ++i) {
14130+
Value *Ptr = Builder.CreateConstGEP1_32(Ops[1], i);
14131+
InOps[i + 1] = Builder.CreateAlignedLoad(Ptr, Align(16));
1412214132
}
1412314133

14124-
Value *Call = Builder.CreateCall(CGM.getIntrinsic(ID), InOps);
14134+
Value *Call = Builder.CreateCall(CGM.getIntrinsic(IID), InOps);
1412514135

14126-
for (int i = 0; i < ResultCount; ++i) {
14127-
Builder.CreateDefaultAlignedStore(Builder.CreateExtractValue(Call, i + 1),
14128-
Ops[FirstReturnOp + i]);
14136+
for (int i = 0; i != 8; ++i) {
14137+
Value *Extract = Builder.CreateExtractValue(Call, i + 1);
14138+
Value *Ptr = Builder.CreateConstGEP1_32(Ops[0], i);
14139+
Builder.CreateAlignedStore(Extract, Ptr, Align(16));
1412914140
}
1413014141

1413114142
return Builder.CreateExtractValue(Call, 0);

clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5034,6 +5034,7 @@ void CGOpenMPRuntimeGPU::processRequiresDirective(
50345034
case CudaArch::GFX1012:
50355035
case CudaArch::GFX1030:
50365036
case CudaArch::GFX1031:
5037+
case CudaArch::UNUSED:
50375038
case CudaArch::UNKNOWN:
50385039
break;
50395040
case CudaArch::LAST:
@@ -5095,6 +5096,7 @@ static std::pair<unsigned, unsigned> getSMsBlocksPerSM(CodeGenModule &CGM) {
50955096
case CudaArch::GFX1012:
50965097
case CudaArch::GFX1030:
50975098
case CudaArch::GFX1031:
5099+
case CudaArch::UNUSED:
50985100
case CudaArch::UNKNOWN:
50995101
break;
51005102
case CudaArch::LAST:

0 commit comments

Comments
 (0)