Skip to content

Commit f704e92

Browse files
committed
Warn about CM tiny and kernel
1 parent 7def0ff commit f704e92

File tree

3 files changed

+13
-15
lines changed

3 files changed

+13
-15
lines changed

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5767,10 +5767,17 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
57675767
} else if (Triple.getArch() == llvm::Triple::x86_64) {
57685768
Ok = llvm::is_contained({"small", "kernel", "medium", "large", "tiny"},
57695769
CM);
5770-
} else if (Triple.isNVPTX() || Triple.isAMDGPU()) {
5771-
// NVPTX/AMDGPU does not care about the code model and will accept
5770+
} else if (Triple.isNVPTX()) {
5771+
// NVPTX does not care about the code model and will accept
57725772
// whatever works for the host.
57735773
Ok = true;
5774+
} else if (Triple.isAMDGPU()) {
5775+
// AMDGPU does not care about the code model.
5776+
Ok = true;
5777+
// AMDGPU target does not accept CM tiny and kernel.
5778+
if (CM == "tiny" || CM == "kernel") {
5779+
D.Diag(diag::warn_ignored_clang_option) << A->getSpelling() << CM << TripleStr;
5780+
}
57745781
}
57755782
if (Ok) {
57765783
CmdArgs.push_back(Args.MakeArgString("-mcmodel=" + CM));

clang/test/Driver/mcmodel.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
// RUN: not %clang -### -c --target=aarch64 -mcmodel=medium %s 2>&1 | FileCheck --check-prefix=ERR-MEDIUM %s
1616
// RUN: not %clang -### -c --target=aarch64 -mcmodel=kernel %s 2>&1 | FileCheck --check-prefix=ERR-KERNEL %s
1717
// RUN: not %clang --target=aarch64_32-linux -### -S -mcmodel=small %s 2>&1 | FileCheck --check-prefix=ERR-AARCH64_32 %s
18-
// RUN: %clang --offload-arch=gfx906 -nogpulib -### -c -x hip -mcmodel=tiny %s 2>&1 | FileCheck --check-prefix=AMDGPU-MCMODEL-TINY %s
18+
// RUN: %clang --offload-arch=gfx906 -nogpulib -### -c -x hip -mcmodel=tiny %s 2>&1 | FileCheck --check-prefix=AMDGPU-MCMODEL-TINY-WARNING %s
1919
// RUN: %clang --offload-arch=gfx906 -nogpulib -### -c -x hip -mcmodel=small %s 2>&1 | FileCheck --check-prefix=AMDGPU-MCMODEL-SMALL %s
20-
// RUN: %clang --offload-arch=gfx906 -nogpulib -### -S -x hip -mcmodel=kernel %s 2>&1 | FileCheck --check-prefix=AMDGPU-MCMODEL-KERNEL %s
20+
// RUN: %clang --offload-arch=gfx906 -nogpulib -### -S -x hip -mcmodel=kernel %s 2>&1 | FileCheck --check-prefix=AMDGPU-MCMODEL-KERNEL-WARNING %s
2121
// RUN: %clang --offload-arch=gfx906 -nogpulib -### -c -x hip -mcmodel=medium %s 2>&1 | FileCheck --check-prefix=AMDGPU-MCMODEL-MEDIUM %s
2222
// RUN: %clang --offload-arch=gfx906 -nogpulib -### -S -x hip -mcmodel=large %s 2>&1 | FileCheck --check-prefix=AMDGPU-MCMODEL-LARGE %s
2323

@@ -36,8 +36,8 @@
3636

3737
// AARCH64-PIC-LARGE: error: invalid argument '-mcmodel=large' only allowed with '-fno-pic'
3838
// ERR-AARCH64_32: error: unsupported argument 'small' to option '-mcmodel=' for target 'aarch64_32-unknown-linux'
39-
// AMDGPU-MCMODEL-TINY: "-mcmodel=tiny"
39+
// AMDGPU-MCMODEL-TINY-WARNING: warning: the flag '-mcmodel=' has been deprecated and will be ignored
4040
// AMDGPU-MCMODEL-SMALL: "-mcmodel=small"
41-
// AMDGPU-MCMODEL-KERNEL: "-mcmodel=kernel"
41+
// AMDGPU-MCMODEL-KERNEL-WARNING: warning: the flag '-mcmodel=' has been deprecated and will be ignored
4242
// AMDGPU-MCMODEL-MEDIUM: "-mcmodel=medium"
4343
// AMDGPU-MCMODEL-LARGE: "-mcmodel=large"

llvm/test/CodeGen/AMDGPU/codemodel.ll

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)