Author: petergrind3 Date: 2025-08-20T09:05:23+02:00 New Revision: 27f32831b9a854a525a7f494143769b93ce17c83
URL: https://github.com/llvm/llvm-project/commit/27f32831b9a854a525a7f494143769b93ce17c83 DIFF: https://github.com/llvm/llvm-project/commit/27f32831b9a854a525a7f494143769b93ce17c83.diff LOG: [lanai] Add back the ability to set the memory model with --mcmodel. (#150575) This ability got removed at some point but is still needed to select specific modes for Lanai backend. Add back with simple frontend smoke test. Added: clang/test/Driver/lanai-mcmodel.c Modified: clang/docs/ReleaseNotes.rst clang/lib/Driver/ToolChains/CommonArgs.cpp Removed: ################################################################################ diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index eed26c00641a2..97f2a86c721f9 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -147,6 +147,10 @@ New Compiler Flags ------------------ - New option ``-fno-sanitize-annotate-debug-info-traps`` added to disable emitting trap reasons into the debug info when compiling with trapping UBSan (e.g. ``-fsanitize-trap=undefined``). +Lanai Support +^^^^^^^^^^^^^^ +- The option ``-mcmodel={small,medium,large}`` is supported again. + Deprecated Compiler Flags ------------------------- diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index eb88f7bd4b469..a21f89da55009 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -3125,6 +3125,8 @@ void tools::addMCModel(const Driver &D, const llvm::opt::ArgList &Args, else if (CM == "medany") CM = "large"; Ok = CM == "small" || CM == "medium" || CM == "large"; + } else if (Triple.getArch() == llvm::Triple::lanai) { + Ok = llvm::is_contained({"small", "medium", "large"}, CM); } if (Ok) { CmdArgs.push_back(Args.MakeArgString("-mcmodel=" + CM)); diff --git a/clang/test/Driver/lanai-mcmodel.c b/clang/test/Driver/lanai-mcmodel.c new file mode 100644 index 0000000000000..d62d7e1c37f24 --- /dev/null +++ b/clang/test/Driver/lanai-mcmodel.c @@ -0,0 +1,10 @@ +// RUN: %clang --target=lanai -### -c -mcmodel=small %s 2>&1 | FileCheck --check-prefix=SMALL %s +// RUN: %clang --target=lanai -### -c -mcmodel=medium %s 2>&1 | FileCheck --check-prefix=MEDIUM %s +// RUN: %clang --target=lanai -### -c -mcmodel=large %s 2>&1 | FileCheck --check-prefix=LARGE %s +// RUN: not %clang --target=lanai -### -c -mcmodel=something %s 2>&1 | FileCheck --check-prefix=ERR-MCMODEL %s + +// SMALL: "-mcmodel=small" +// MEDIUM: "-mcmodel=medium" +// LARGE: "-mcmodel=large" + +// ERR-MCMODEL: error: unsupported argument 'something' to option '-mcmodel=' for target 'lanai' _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits