[all-commits] [llvm/llvm-project] c186db: [CIR] Implement 'typeid' operator lowering (#184449)

Erich Keane via All-commits all-commits at lists.llvm.org
Thu Mar 5 06:07:36 PST 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c186db874b9037a77829bce4ebf89bed46efdbb8
      https://github.com/llvm/llvm-project/commit/c186db874b9037a77829bce4ebf89bed46efdbb8
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2026-03-05 (Thu, 05 Mar 2026)

  Changed paths:
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/lib/CIR/CodeGen/CIRGenCXXABI.h
    M clang/lib/CIR/CodeGen/CIRGenCall.cpp
    M clang/lib/CIR/CodeGen/CIRGenException.cpp
    M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.h
    M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.h
    M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
    M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRCXXABI.h
    M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
    A clang/test/CIR/CodeGenCXX/Inputs/typeinfo
    A clang/test/CIR/CodeGenCXX/typeid-cxx11.cpp
    A clang/test/CIR/CodeGenCXX/typeid-should-throw.cpp
    A clang/test/CIR/CodeGenCXX/typeid.cpp

  Log Message:
  -----------
  [CIR] Implement 'typeid' operator lowering (#184449)

This patch adds typeid lowering, which uses a lot of the infrastructure
from dynamic_cast. However, this adds a `get_type_info` operation that
gets the type info out of a vtable pointer as well, which lets the
offset be handled by the ABI specific lowering code.



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