Skip to content

Commit f1827c9

Browse files
committed
Merge remote-tracking branch 'origin/main' into aballman-ms-inline-func-compat
2 parents 247afa8 + 65136a3 commit f1827c9

File tree

20 files changed

+188
-236
lines changed

20 files changed

+188
-236
lines changed

clang/include/clang/CIRFrontendAction/.clang-tidy renamed to clang/include/clang/CIR/FrontendAction/.clang-tidy

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,18 @@ Checks: >
5151
readability-simplify-boolean-expr,
5252
readability-simplify-subscript-expr,
5353
readability-use-anyofallof
54+
CheckOptions:
55+
- key: readability-identifier-naming.ClassCase
56+
value: CamelCase
57+
- key: readability-identifier-naming.EnumCase
58+
value: CamelCase
59+
- key: readability-identifier-naming.FunctionCase
60+
value: camelBack
61+
- key: readability-identifier-naming.MemberCase
62+
value: CamelCase
63+
- key: readability-identifier-naming.ParameterCase
64+
value: CamelCase
65+
- key: readability-identifier-naming.UnionCase
66+
value: CamelCase
67+
- key: readability-identifier-naming.VariableCase
68+
value: CamelCase

clang/include/clang/CIR/LowerToLLVM.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ namespace cir {
2929

3030
namespace direct {
3131
std::unique_ptr<llvm::Module>
32-
lowerDirectlyFromCIRToLLVMIR(mlir::ModuleOp M, llvm::LLVMContext &Ctx);
32+
lowerDirectlyFromCIRToLLVMIR(mlir::ModuleOp mlirModule,
33+
llvm::LLVMContext &llvmCtx);
3334
} // namespace direct
3435
} // namespace cir
3536

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
InheritParentConfig: true
2+
CheckOptions:
3+
- key: readability-identifier-naming.ClassCase
4+
value: CamelCase
5+
- key: readability-identifier-naming.EnumCase
6+
value: CamelCase
7+
- key: readability-identifier-naming.FunctionCase
8+
value: camelBack
9+
- key: readability-identifier-naming.MemberCase
10+
value: CamelCase
11+
- key: readability-identifier-naming.ParameterCase
12+
value: CamelCase
13+
- key: readability-identifier-naming.UnionCase
14+
value: CamelCase
15+
- key: readability-identifier-naming.VariableCase
16+
value: CamelCase

clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,17 @@ namespace cir {
2323
namespace direct {
2424

2525
std::unique_ptr<llvm::Module>
26-
lowerDirectlyFromCIRToLLVMIR(mlir::ModuleOp MOp, LLVMContext &LLVMCtx) {
26+
lowerDirectlyFromCIRToLLVMIR(mlir::ModuleOp mlirModule, LLVMContext &llvmCtx) {
2727
llvm::TimeTraceScope scope("lower from CIR to LLVM directly");
2828

29-
std::optional<StringRef> ModuleName = MOp.getName();
30-
auto M = std::make_unique<llvm::Module>(
31-
ModuleName ? *ModuleName : "CIRToLLVMModule", LLVMCtx);
29+
std::optional<StringRef> moduleName = mlirModule.getName();
30+
auto llvmModule = std::make_unique<llvm::Module>(
31+
moduleName ? *moduleName : "CIRToLLVMModule", llvmCtx);
3232

33-
if (!M)
33+
if (!llvmModule)
3434
report_fatal_error("Lowering from LLVMIR dialect to llvm IR failed!");
3535

36-
return M;
36+
return llvmModule;
3737
}
3838
} // namespace direct
3939
} // namespace cir

clang/lib/Driver/Driver.cpp

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4712,23 +4712,7 @@ Driver::getOffloadArchs(Compilation &C, const llvm::opt::DerivedArgList &Args,
47124712
return KnownArchs.lookup(TC);
47134713

47144714
llvm::DenseSet<StringRef> Archs;
4715-
for (auto *Arg : Args) {
4716-
// Extract any '--[no-]offload-arch' arguments intended for this toolchain.
4717-
std::unique_ptr<llvm::opt::Arg> ExtractedArg = nullptr;
4718-
if (Arg->getOption().matches(options::OPT_Xopenmp_target_EQ) &&
4719-
ToolChain::getOpenMPTriple(Arg->getValue(0)) == TC->getTriple()) {
4720-
Arg->claim();
4721-
unsigned Index = Args.getBaseArgs().MakeIndex(Arg->getValue(1));
4722-
unsigned Prev = Index;
4723-
ExtractedArg = getOpts().ParseOneArg(Args, Index);
4724-
if (!ExtractedArg || Index > Prev + 1) {
4725-
TC->getDriver().Diag(diag::err_drv_invalid_Xopenmp_target_with_args)
4726-
<< Arg->getAsString(Args);
4727-
continue;
4728-
}
4729-
Arg = ExtractedArg.get();
4730-
}
4731-
4715+
for (auto *Arg : C.getArgsForToolChain(TC, /*BoundArch=*/"", Kind)) {
47324716
// Add or remove the seen architectures in order of appearance. If an
47334717
// invalid architecture is given we simply exit.
47344718
if (Arg->getOption().matches(options::OPT_offload_arch_EQ)) {
@@ -4785,14 +4769,31 @@ Driver::getOffloadArchs(Compilation &C, const llvm::opt::DerivedArgList &Args,
47854769
return Archs;
47864770

47874771
if (Archs.empty()) {
4788-
if (Kind == Action::OFK_Cuda)
4772+
if (Kind == Action::OFK_Cuda) {
47894773
Archs.insert(OffloadArchToString(OffloadArch::CudaDefault));
4790-
else if (Kind == Action::OFK_HIP)
4774+
} else if (Kind == Action::OFK_HIP) {
47914775
Archs.insert(OffloadArchToString(OffloadArch::HIPDefault));
4792-
else if (Kind == Action::OFK_OpenMP)
4793-
Archs.insert(StringRef());
4794-
else if (Kind == Action::OFK_SYCL)
4776+
} else if (Kind == Action::OFK_SYCL) {
47954777
Archs.insert(StringRef());
4778+
} else if (Kind == Action::OFK_OpenMP) {
4779+
// Accept legacy `-march` device arguments for OpenMP.
4780+
if (auto *Arg = C.getArgsForToolChain(TC, /*BoundArch=*/"", Kind)
4781+
.getLastArg(options::OPT_march_EQ)) {
4782+
Archs.insert(Arg->getValue());
4783+
} else {
4784+
auto ArchsOrErr = TC->getSystemGPUArchs(Args);
4785+
if (!ArchsOrErr) {
4786+
TC->getDriver().Diag(diag::err_drv_undetermined_gpu_arch)
4787+
<< llvm::Triple::getArchTypeName(TC->getArch())
4788+
<< llvm::toString(ArchsOrErr.takeError()) << "--offload-arch";
4789+
} else if (!ArchsOrErr->empty()) {
4790+
for (auto Arch : *ArchsOrErr)
4791+
Archs.insert(Args.MakeArgStringRef(Arch));
4792+
} else {
4793+
Archs.insert(StringRef());
4794+
}
4795+
}
4796+
}
47964797
} else {
47974798
Args.ClaimAllArgs(options::OPT_offload_arch_EQ);
47984799
Args.ClaimAllArgs(options::OPT_no_offload_arch_EQ);

clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -71,33 +71,9 @@ llvm::opt::DerivedArgList *AMDGPUOpenMPToolChain::TranslateArgs(
7171

7272
const OptTable &Opts = getDriver().getOpts();
7373

74-
if (DeviceOffloadKind == Action::OFK_OpenMP) {
75-
for (Arg *A : Args)
76-
if (!llvm::is_contained(*DAL, A))
77-
DAL->append(A);
78-
79-
if (!DAL->hasArg(options::OPT_march_EQ)) {
80-
StringRef Arch = BoundArch;
81-
if (Arch.empty()) {
82-
auto ArchsOrErr = getSystemGPUArchs(Args);
83-
if (!ArchsOrErr) {
84-
std::string ErrMsg =
85-
llvm::formatv("{0}", llvm::fmt_consume(ArchsOrErr.takeError()));
86-
getDriver().Diag(diag::err_drv_undetermined_gpu_arch)
87-
<< llvm::Triple::getArchTypeName(getArch()) << ErrMsg << "-march";
88-
Arch = OffloadArchToString(OffloadArch::HIPDefault);
89-
} else {
90-
Arch = Args.MakeArgString(ArchsOrErr->front());
91-
}
92-
}
93-
DAL->AddJoinedArg(nullptr, Opts.getOption(options::OPT_march_EQ), Arch);
94-
}
95-
96-
return DAL;
97-
}
98-
9974
for (Arg *A : Args) {
100-
DAL->append(A);
75+
if (!llvm::is_contained(*DAL, A))
76+
DAL->append(A);
10177
}
10278

10379
if (!BoundArch.empty()) {

clang/lib/Driver/ToolChains/Cuda.cpp

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -969,34 +969,6 @@ CudaToolChain::TranslateArgs(const llvm::opt::DerivedArgList &Args,
969969

970970
const OptTable &Opts = getDriver().getOpts();
971971

972-
// For OpenMP device offloading, append derived arguments. Make sure
973-
// flags are not duplicated.
974-
// Also append the compute capability.
975-
if (DeviceOffloadKind == Action::OFK_OpenMP) {
976-
for (Arg *A : Args)
977-
if (!llvm::is_contained(*DAL, A))
978-
DAL->append(A);
979-
980-
if (!DAL->hasArg(options::OPT_march_EQ)) {
981-
StringRef Arch = BoundArch;
982-
if (Arch.empty()) {
983-
auto ArchsOrErr = getSystemGPUArchs(Args);
984-
if (!ArchsOrErr) {
985-
std::string ErrMsg =
986-
llvm::formatv("{0}", llvm::fmt_consume(ArchsOrErr.takeError()));
987-
getDriver().Diag(diag::err_drv_undetermined_gpu_arch)
988-
<< llvm::Triple::getArchTypeName(getArch()) << ErrMsg << "-march";
989-
Arch = OffloadArchToString(OffloadArch::CudaDefault);
990-
} else {
991-
Arch = Args.MakeArgString(ArchsOrErr->front());
992-
}
993-
}
994-
DAL->AddJoinedArg(nullptr, Opts.getOption(options::OPT_march_EQ), Arch);
995-
}
996-
997-
return DAL;
998-
}
999-
1000972
for (Arg *A : Args) {
1001973
// Make sure flags are not duplicated.
1002974
if (!llvm::is_contained(*DAL, A)) {

clang/test/Driver/amdgpu-openmp-system-arch-fail.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
// case when amdgpu_arch returns nothing or fails
1313
// RUN: not %clang -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp -fopenmp-targets=amdgcn-amd-amdhsa -nogpulib --amdgpu-arch-tool=%t/amdgpu_arch_fail %s 2>&1 \
1414
// RUN: | FileCheck %s --check-prefix=NO-OUTPUT-ERROR
15-
// NO-OUTPUT-ERROR: error: cannot determine amdgcn architecture{{.*}}; consider passing it via '-march'
15+
// NO-OUTPUT-ERROR: error: cannot determine amdgcn architecture{{.*}}; consider passing it via '--offload-arch'
1616

1717
// case when amdgpu_arch does not return anything with successful execution
1818
// RUN: not %clang -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp -fopenmp-targets=amdgcn-amd-amdhsa -nogpulib --amdgpu-arch-tool=%t/amdgpu_arch_empty %s 2>&1 \
1919
// RUN: | FileCheck %s --check-prefix=EMPTY-OUTPUT
20-
// EMPTY-OUTPUT: error: cannot determine amdgcn architecture: No AMD GPU detected in the system; consider passing it via '-march'
20+
// EMPTY-OUTPUT: error: cannot determine amdgcn architecture: No AMD GPU detected in the system; consider passing it via '--offload-arch'

clang/test/Driver/amdgpu-openmp-toolchain.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
1616
// CHECK-PHASES: 0: input, "[[INPUT:.+]]", c, (host-openmp)
1717
// CHECK-PHASES: 1: preprocessor, {0}, cpp-output, (host-openmp)
1818
// CHECK-PHASES: 2: compiler, {1}, ir, (host-openmp)
19-
// CHECK-PHASES: 3: input, "[[INPUT]]", c, (device-openmp)
20-
// CHECK-PHASES: 4: preprocessor, {3}, cpp-output, (device-openmp)
21-
// CHECK-PHASES: 5: compiler, {4}, ir, (device-openmp)
22-
// CHECK-PHASES: 6: offload, "host-openmp (x86_64-unknown-linux-gnu)" {2}, "device-openmp (amdgcn-amd-amdhsa)" {5}, ir
23-
// CHECK-PHASES: 7: backend, {6}, ir, (device-openmp)
24-
// CHECK-PHASES: 8: offload, "device-openmp (amdgcn-amd-amdhsa)" {7}, ir
19+
// CHECK-PHASES: 3: input, "[[INPUT]]", c, (device-openmp, gfx906)
20+
// CHECK-PHASES: 4: preprocessor, {3}, cpp-output, (device-openmp, gfx906)
21+
// CHECK-PHASES: 5: compiler, {4}, ir, (device-openmp, gfx906)
22+
// CHECK-PHASES: 6: offload, "host-openmp (x86_64-unknown-linux-gnu)" {2}, "device-openmp (amdgcn-amd-amdhsa:gfx906)" {5}, ir
23+
// CHECK-PHASES: 7: backend, {6}, ir, (device-openmp, gfx906)
24+
// CHECK-PHASES: 8: offload, "device-openmp (amdgcn-amd-amdhsa:gfx906)" {7}, ir
2525
// CHECK-PHASES: 9: clang-offload-packager, {8}, image, (device-openmp)
2626
// CHECK-PHASES: 10: offload, "host-openmp (x86_64-unknown-linux-gnu)" {2}, "device-openmp (x86_64-unknown-linux-gnu)" {9}, ir
2727
// CHECK-PHASES: 11: backend, {10}, assembler, (host-openmp)

clang/test/Driver/openmp-offload-gpu.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -235,13 +235,13 @@
235235
// CHECK-PHASES: 0: input, "[[INPUT:.+]]", c, (host-openmp)
236236
// CHECK-PHASES: 1: preprocessor, {0}, cpp-output, (host-openmp)
237237
// CHECK-PHASES: 2: compiler, {1}, ir, (host-openmp)
238-
// CHECK-PHASES: 3: input, "[[INPUT]]", c, (device-openmp)
239-
// CHECK-PHASES: 4: preprocessor, {3}, cpp-output, (device-openmp)
240-
// CHECK-PHASES: 5: compiler, {4}, ir, (device-openmp)
241-
// CHECK-PHASES: 6: offload, "host-openmp (x86_64-unknown-linux-gnu)" {2}, "device-openmp (nvptx64-nvidia-cuda)" {5}, ir
242-
// CHECK-PHASES: 7: backend, {6}, assembler, (device-openmp)
243-
// CHECK-PHASES: 8: assembler, {7}, object, (device-openmp)
244-
// CHECK-PHASES: 9: offload, "device-openmp (nvptx64-nvidia-cuda)" {8}, object
238+
// CHECK-PHASES: 3: input, "[[INPUT]]", c, (device-openmp, sm_52)
239+
// CHECK-PHASES: 4: preprocessor, {3}, cpp-output, (device-openmp, sm_52)
240+
// CHECK-PHASES: 5: compiler, {4}, ir, (device-openmp, sm_52)
241+
// CHECK-PHASES: 6: offload, "host-openmp (x86_64-unknown-linux-gnu)" {2}, "device-openmp (nvptx64-nvidia-cuda:sm_52)" {5}, ir
242+
// CHECK-PHASES: 7: backend, {6}, assembler, (device-openmp, sm_52)
243+
// CHECK-PHASES: 8: assembler, {7}, object, (device-openmp, sm_52)
244+
// CHECK-PHASES: 9: offload, "device-openmp (nvptx64-nvidia-cuda:sm_52)" {8}, object
245245
// CHECK-PHASES: 10: clang-offload-packager, {9}, image
246246
// CHECK-PHASES: 11: offload, "host-openmp (x86_64-unknown-linux-gnu)" {2}, "device-openmp (x86_64-unknown-linux-gnu)" {10}, ir
247247
// CHECK-PHASES: 12: backend, {11}, assembler, (host-openmp)
@@ -315,7 +315,7 @@
315315
// RUN: -Xopenmp-target=nvptx64-nvidia-cuda -march=sm_52 --offload-device-only -nogpulib %s 2>&1 | FileCheck %s --check-prefix=CHECK-DEVICE-ONLY
316316
// CHECK-DEVICE-ONLY: "x86_64-unknown-linux-gnu" - "clang", inputs: ["[[INPUT:.*]]"], output: "[[HOST_BC:.*]]"
317317
// CHECK-DEVICE-ONLY: "nvptx64-nvidia-cuda" - "clang", inputs: ["[[INPUT]]", "[[HOST_BC]]"], output: "[[DEVICE_ASM:.*]]"
318-
// CHECK-DEVICE-ONLY: "nvptx64-nvidia-cuda" - "NVPTX::Assembler", inputs: ["[[DEVICE_ASM]]"], output: "{{.*}}-openmp-nvptx64-nvidia-cuda.o"
318+
// CHECK-DEVICE-ONLY: "nvptx64-nvidia-cuda" - "NVPTX::Assembler", inputs: ["[[DEVICE_ASM]]"], output: "{{.*}}-openmp-nvptx64-nvidia-cuda-sm_52.o"
319319

320320
// RUN: %clang -### --target=x86_64-unknown-linux-gnu -ccc-print-bindings -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda \
321321
// RUN: -Xopenmp-target=nvptx64-nvidia-cuda -march=sm_52 --offload-device-only -E -nogpulib %s 2>&1 | FileCheck %s --check-prefix=CHECK-DEVICE-ONLY-PP

0 commit comments

Comments
 (0)