This is an archive of the discontinued LLVM Phabricator instance.

[MLIR][LLVM] Only disallow inlining for selected function attributes.
ClosedPublic

Authored by definelicht on Feb 15 2023, 7:17 AM.

Details

Summary

This loosens the requirement of no passthrough function attribute being
present to checking for specific attributes that prevent inlining. Since
these attributes are no longer strictly passthrough, they should
eventually be upgraded to some form of addressable attributes.

Drops the expensive StringSwitches over call and function attributes in
favor of selectively disallowing attributes that prevent inlining
(similiar to the LLVM inliner), thereby moving to a less conservative
approach.

Diff Detail

Event Timeline

definelicht created this revision.Feb 15 2023, 7:17 AM
Herald added a project: Restricted Project. · View Herald Transcript
definelicht requested review of this revision.Feb 15 2023, 7:17 AM
gysit accepted this revision.Feb 15 2023, 10:41 AM

LGTM!

mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
2868–2891

nit: ; -> .?

This revision is now accepted and ready to land.Feb 15 2023, 10:41 AM