================
@@ -2036,6 +2041,7 @@ void CIRToLLVMFuncOpLowering::lowerFuncAttributes(
         attr.getName() == func.getDsoLocalAttrName() ||
         attr.getName() == func.getInlineKindAttrName() ||
         attr.getName() == func.getSideEffectAttrName() ||
+        attr.getName() == CIRDialect::getNoReturnAttrName() ||
----------------
andykaylor wrote:

This is what I was talking about earlier. DsoLocal, InlineKind, and SideEffect 
are all explicit attributes in FuncOp, but NoReturn isn't, so there is no 
`func.getNoReturnAttrName()`. We had previously talked about doing it this way 
going forward because there are potentially so many of these, but the fact that 
the LLVM dialect is doing it differently is concerning.

I'm not sure which representation ends up being more efficient. We don't want 
to pay for a lot of attributes that we usually don't use, but we also don't 
want slow lookup for things that we have to check often.

The previous discussion that was vaguely rattling around in my memory had to do 
with the way the incubator uses "extra_attrs" as a sort of catch-all for this 
kind of thing. Here is that discussion: 
https://github.com/llvm/llvm-project/pull/145178#discussion_r2162604619

https://github.com/llvm/llvm-project/pull/177978
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to