This is an archive of the discontinued LLVM Phabricator instance.

[MLIR][LLVM] Extend argument/result/function attribute support.
ClosedPublic

Authored by definelicht on Mar 23 2023, 8:55 AM.

Details

Summary

Use a disallowlist approach to deselect attributes on arguments and
return values that are not yet supported, but allow the rest to be
present when inlining.

To achieve fast lookup in isLegalToInline, the set of unsupported
function attributes is cached on the inliner interface object during
construction. By using a set of StringAttrs this should just amount to a
pointer lookup.

Depends on D146633

Diff Detail

Event Timeline

definelicht created this revision.Mar 23 2023, 8:55 AM
Herald added a reviewer: dcaballe. · View Herald Transcript
Herald added a project: Restricted Project. · View Herald Transcript
definelicht requested review of this revision.Mar 23 2023, 8:55 AM
gysit accepted this revision.Mar 24 2023, 1:11 AM

LGTM

mlir/lib/Dialect/LLVMIR/IR/LLVMInlining.cpp
133

nit: isArgOrResAttrSupported ?

mlir/test/Dialect/LLVMIR/inlining.mlir
429

nit: ret_attr -> res_attr

This revision is now accepted and ready to land.Mar 24 2023, 1:11 AM

Address review comments by renaming Ret->Res.