[all-commits] [llvm/llvm-project] bf1460: [MLIR][CIR] WIP: Add implicit terminator trait hie...

Henrich Lauko via All-commits all-commits at lists.llvm.org
Sun Apr 19 22:35:34 PDT 2026


  Branch: refs/heads/users/xlauko/mlir-implicit-terminators
  Home:   https://github.com/llvm/llvm-project
  Commit: bf146029839a927152cce522823645693cf11c37
      https://github.com/llvm/llvm-project/commit/bf146029839a927152cce522823645693cf11c37
  Author: xlauko <xlauko at mail.muni.cz>
  Date:   2026-04-20 (Mon, 20 Apr 2026)

  Changed paths:
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
    M clang/test/CIR/CodeGen/base-init-eh.cpp
    M clang/test/CIR/CodeGen/cleanup-automatic-eh.cpp
    M clang/test/CIR/CodeGen/cleanup-conditional-eh.cpp
    M clang/test/CIR/CodeGen/cleanup-conditional.cpp
    M clang/test/CIR/CodeGen/cleanup-scope-return-in-loop.cpp
    M clang/test/CIR/CodeGen/cleanup-scope-tmp-with-exception.cpp
    M clang/test/CIR/CodeGen/cleanup-scope-tmp.cpp
    M clang/test/CIR/CodeGen/cleanup-throwing-dtor.cpp
    M clang/test/CIR/CodeGen/cleanup.cpp
    M clang/test/CIR/CodeGen/ctor-try-body.cpp
    M clang/test/CIR/CodeGen/delegating-ctor-exceptions.cpp
    M clang/test/CIR/CodeGen/delete.cpp
    M clang/test/CIR/CodeGen/destructors.cpp
    M clang/test/CIR/CodeGen/dtors.cpp
    M clang/test/CIR/CodeGen/field-init-eh.cpp
    M clang/test/CIR/CodeGen/instantiate-init.cpp
    M clang/test/CIR/CodeGen/lambda-dtor-field.cpp
    M clang/test/CIR/CodeGen/new-delete.cpp
    M clang/test/CIR/CodeGen/nrvo.cpp
    M clang/test/CIR/CodeGen/paren-init-list-eh.cpp
    M clang/test/CIR/CodeGen/paren-init-list.cpp
    M clang/test/CIR/CodeGen/partial-array-cleanup.cpp
    M clang/test/CIR/CodeGen/size-of-vla.cpp
    M clang/test/CIR/CodeGen/stmt-expr.cpp
    M clang/test/CIR/CodeGen/try-catch-all-with-cleanup.cpp
    M clang/test/CIR/CodeGen/try-catch.cpp
    M clang/test/CIR/CodeGen/virtual-fn-calls-eh.cpp
    M clang/test/CIR/CodeGen/virtual-function-calls.cpp
    M clang/test/CIR/CodeGenOpenACC/declare-copy.cpp
    M clang/test/CIR/CodeGenOpenACC/declare-copyin.cpp
    M clang/test/CIR/CodeGenOpenACC/declare-copyout.cpp
    M clang/test/CIR/CodeGenOpenACC/declare-create.cpp
    M clang/test/CIR/CodeGenOpenACC/declare-deviceptr.cpp
    M clang/test/CIR/CodeGenOpenACC/declare-deviceresident.cpp
    M clang/test/CIR/CodeGenOpenACC/declare-link.cpp
    M clang/test/CIR/CodeGenOpenACC/declare-present.cpp
    M clang/test/CIR/IR/catch-param.cir
    M clang/test/CIR/IR/cleanup-scope.cir
    M clang/test/CIR/IR/try-catch.cir
    M clang/test/CIR/Transforms/canonicalize-cleanup-scope.cir
    M mlir/include/mlir/IR/OpBase.td
    M mlir/include/mlir/IR/OpDefinition.h
    M mlir/include/mlir/Parser/Parser.h
    M mlir/test/lib/Dialect/Test/TestDialectInterfaces.cpp
    M mlir/test/lib/Dialect/Test/TestOpDefs.cpp
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/tools/mlir-tblgen/OpFormatGen.cpp

  Log Message:
  -----------
  [MLIR][CIR] WIP: Add implicit terminator trait hierarchy

Add a complete 2x2 matrix of implicit terminator traits:
- ImplicitDefaultTerminator<T>: any terminator, no SingleBlock
- ImplicitTerminator<T>: only T, no SingleBlock
- SingleBlockImplicitDefaultTerminator<T>: any terminator, SingleBlock
- SingleBlockImplicitTerminator<T>: only T, SingleBlock (existing)

Shared ImplicitTerminatorBase provides ensureTerminator,
buildTerminator, ImplicitTerminatorOpT, and a common
verifyRegionTerminators loop.

Adopt ImplicitDefaultTerminator in CIR for IfOp, ScopeOp,
and CleanupScopeOp. Remove dead CIR helpers (omitRegionTerm,
parseOmittedTerminatorRegion, printOmittedTerminatorRegion).



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