[clang] [CIR] Realign CIR-to-LLVM IR lowering code with incubator (PR #129293)

Andy Kaylor via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 28 13:41:34 PST 2025


================
@@ -218,12 +221,31 @@ mlir::LogicalResult CIRToLLVMGlobalOpLowering::matchAndRewrite(
   SmallVector<mlir::NamedAttribute> attributes;
 
   if (init.has_value()) {
-    GlobalInitAttrRewriter initRewriter(llvmType, rewriter);
-    init = initRewriter.rewriteInitAttr(init.value());
-    // If initRewriter returned a null attribute, init will have a value but
-    // the value will be null. If that happens, initRewriter didn't handle the
-    // attribute type. It probably needs to be added to GlobalInitAttrRewriter.
-    if (!init.value()) {
+    if (mlir::isa<cir::FPAttr, cir::IntAttr>(init.value())) {
----------------
andykaylor wrote:

The incubator only has three types that get handled here, but it does look a bit cleaner with these being handled separately. There is a possibility that the `if` above could get out of sync with the types handled in `GlobalInitAttrRewriter` but that would trigger the error below, so we'd catch it in development.

https://github.com/llvm/llvm-project/pull/129293


More information about the cfe-commits mailing list