From 7cc0929ec6f379ebca8c30c2feb09f8458293fd4 Mon Sep 17 00:00:00 2001 From: Alex Sepkowski Date: Thu, 1 Oct 2026 17:51:48 -0700 Subject: [PATCH] [Win] Add opt-in /Os for Release builds Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CMakeLists.txt | 2 ++ cmake/modules/HandleLLVMOptions.cmake | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5210718005..50b21e943f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -98,6 +98,8 @@ mark_as_advanced(DXC_DISABLE_ALLOCATOR_OVERRIDES) option(DXC_CODEGEN_EXCEPTIONS_TRAP "An exception in code generation generates a trap, ending the compiler process" OFF) mark_as_advanced(DXC_CODEGEN_EXCEPTIONS_TRAP) +option(DXC_OPTIMIZE_FOR_SIZE "Use MSVC /Os for Windows Release builds" OFF) + # adjust link option to enable debugging from kernel mode; not compatible with incremental linking if(NOT CMAKE_VERSION VERSION_LESS "3.13" AND MSVC AND NOT CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "ARM64EC") add_link_options(/DEBUGTYPE:CV,FIXUP,PDATA /INCREMENTAL:NO) diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake index d05beb11c4..8fdff83e3f 100644 --- a/cmake/modules/HandleLLVMOptions.cmake +++ b/cmake/modules/HandleLLVMOptions.cmake @@ -371,6 +371,10 @@ if( MSVC ) append("/DEBUG /OPT:REF" CMAKE_EXE_LINKER_FLAGS_RELEASE) endif() + if (DXC_OPTIMIZE_FOR_SIZE) + append("/Os" CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELEASE) + endif() + # HLSL Changes End # Enable warnings