This is an archive of the discontinued LLVM Phabricator instance.

[X86][AMX] Fallback to multi-config if single-config fails.
Needs ReviewPublic

Authored by LuoYuanke on Jun 5 2022, 5:35 AM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

Single config would fail if the shape dependency is unresolved and it
cause compiling failure. To overcome the shape dependency issue, we can
fallback to multi-config solution, so that it can be compiled
successfully but with less performance because the extra configure and
spill/reload overhead.
The signle config pass would set the flag HasSingleTileConfig true if it
successfully config the function. The multi/fast config pass follows the
single config pass and check the flag HasSingleTileConfig to determine
if the function has been single configured. If not multi/fast config
pass would config the function again.
We have a separate RA to allocate tile register, so that both single
config and multi/fast config can works well with it.

Diff Detail

Event Timeline

LuoYuanke created this revision.Jun 5 2022, 5:35 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 5 2022, 5:35 AM
LuoYuanke requested review of this revision.Jun 5 2022, 5:35 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 5 2022, 5:35 AM
llvm/test/CodeGen/X86/AMX/amx-config-fallback.ll