[PATCH] D100026: [X86] Support AMX fast register allocation

Xiang Zhang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 16 01:12:00 PDT 2021


xiangzhangllvm marked 12 inline comments as done.
xiangzhangllvm added a comment.

The patch is big, thanks for Pengfei's review!



================
Comment at: llvm/lib/Target/X86/X86PreAMXConfig.cpp:356
+    // Prepare for fast register allocation at O0.
+    if (TM->getOptLevel() == CodeGenOpt::None) {
+
----------------
pengfei wrote:
> Do we need to check it since the pass is only created under O0?
it checked at its caller.


================
Comment at: llvm/lib/Target/X86/X86PreAMXConfig.cpp:216
+
+  // The def of KeyAMX should be stored.
+  // Todo: is it key amx can be no def?
----------------
pengfei wrote:
> Why can't be DPSSD etc.?
// here "be stored" means "be stored into mem" not "be TileStore instruction", I'll refine this comments.


================
Comment at: llvm/test/CodeGen/X86/AMX/amx-fast-tile-config.mir:31
+    %16 = bitcast <16 x i32>* %6 to i8*
+    store <16 x i32> zeroinitializer, <16 x i32>* %6, align 64
+    %amx.tmm.0.shape.row1 = getelementptr i8, i8* %16, i64 48
----------------
xiangzhangllvm wrote:
> pengfei wrote:
> > But the alignment of store and alloca is not match. You may cause runtime crush due the the alignment.
> Make sense, thanks!
updated in other tests, e.g. llvm/test/CodeGen/X86/AMX/amx-configO2toO0-precfg.ll  : line 30


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100026/new/

https://reviews.llvm.org/D100026



More information about the llvm-commits mailing list