[all-commits] [llvm/llvm-project] 37e2c3: [CIR] Serialize lowering-relevant LangOptions as #...

Konstantinos Parasyris via All-commits all-commits at lists.llvm.org
Mon Sep 21 12:59:43 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 37e2c3bc9610b7952405ddd7c3557c93e933e554
      https://github.com/llvm/llvm-project/commit/37e2c3bc9610b7952405ddd7c3557c93e933e554
  Author: Konstantinos Parasyris <koparasy at gmail.com>
  Date:   2026-09-21 (Mon, 21 Sep 2026)

  Changed paths:
    M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
    M clang/include/clang/CIR/Dialect/IR/CIRDialect.td
    M clang/lib/CIR/CodeGen/CIRGenModule.cpp
    A clang/test/CIR/CodeGen/lowering-lang-options.cpp
    A clang/test/CIR/IR/lowering-lang-options.cir

  Log Message:
  -----------
  [CIR] Serialize lowering-relevant LangOptions as #cir.lowering_lang_options  (#224757)

Post-CIRGen lowering (LoweringPrepare, CallConvLowering) 
reads a handful of LangOptions flags that have no 
triple/module representation. A reloaded `.cir`
module has no live `clang::LangOptions`, so those flags must be
serialized for the file to be self-describing and lower the
same way it was compiled.

Add a module-level aggregate attribute `#cir.lowering_lang_options`
holding the LangOpts facts lowering consumes: "exceptions, 
threadsafe_statics, cuda, cuda_is_device, hip, gpu_rdc, openmp, 
openmp_is_target_device, and clang_abi_compat". Target-derived
facts (size_t width, CXXABI, comdat, char/pointer/atomic width,
SDK version, fp formats) are **NOT** stored: they are
rebuilt from `cir.triple`

Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list