Author: Henrich Lauko Date: 2026-03-09T18:24:46+01:00 New Revision: 0ea734dd3a5b8b14ee0d8f29260f8166ae4c0d11
URL: https://github.com/llvm/llvm-project/commit/0ea734dd3a5b8b14ee0d8f29260f8166ae4c0d11 DIFF: https://github.com/llvm/llvm-project/commit/0ea734dd3a5b8b14ee0d8f29260f8166ae4c0d11.diff LOG: [CIR] Extract CIR_VAOp base class for VAStartOp and VAEndOp (#185258) Both ops share identical arguments and assembly format. Extract a common base class to eliminate the duplication. Added: Modified: clang/include/clang/CIR/Dialect/IR/CIROps.td Removed: ################################################################################ diff --git a/clang/include/clang/CIR/Dialect/IR/CIROps.td b/clang/include/clang/CIR/Dialect/IR/CIROps.td index 06c8dc0251208..71610a41c9613 100644 --- a/clang/include/clang/CIR/Dialect/IR/CIROps.td +++ b/clang/include/clang/CIR/Dialect/IR/CIROps.td @@ -6191,7 +6191,15 @@ def CIR_ATan2Op : CIR_BinaryFPToFPBuiltinOp<"atan2", "ATan2Op"> { // Variadic Operations //===----------------------------------------------------------------------===// -def CIR_VAStartOp : CIR_Op<"va_start"> { +class CIR_VAOp<string mnemonic> : CIR_Op<mnemonic> { + let arguments = (ins CIR_PointerType:$arg_list); + + let assemblyFormat = [{ + $arg_list attr-dict `:` type(operands) + }]; +} + +def CIR_VAStartOp : CIR_VAOp<"va_start"> { let summary = "Starts a variable argument list"; let description = [{ The cir.va_start operation models the C/C++ va_start macro by @@ -6220,14 +6228,9 @@ def CIR_VAStartOp : CIR_Op<"va_start"> { cir.va_start %p : !cir.ptr<!rec___va_list_tag> ``` }]; - let arguments = (ins CIR_PointerType:$arg_list); - - let assemblyFormat = [{ - $arg_list attr-dict `:` type(operands) - }]; } -def CIR_VAEndOp : CIR_Op<"va_end"> { +def CIR_VAEndOp : CIR_VAOp<"va_end"> { let summary = "Ends a variable argument list"; let description = [{ The `cir.va_end` operation models the C/C++ va_end macro by finalizing @@ -6255,12 +6258,6 @@ def CIR_VAEndOp : CIR_Op<"va_end"> { cir.va_end %p : !cir.ptr<!rec___va_list_tag> ``` }]; - - let arguments = (ins CIR_PointerType:$arg_list); - - let assemblyFormat = [{ - $arg_list attr-dict `:` type(operands) - }]; } def CIR_VACopyOp : CIR_Op<"va_copy"> { _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
