================
@@ -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