[PATCH] D151894: [AArch64] Neoverse V2 scheduling model

Graham Hunter via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 2 03:52:35 PDT 2023


huntergr added a comment.

Thanks for working on this.

I'm not sure how much difference the 'F' vs 'I' pipeline restrictions matter in practice, but I've spotted a few cases where the model will use 'I' instead of the more restrictive 'F'



================
Comment at: llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td:985
+// ALU, basic, flagset
+def : SchedAlias<WriteI,     V2Write_1cyc_1I>;
+
----------------
The flag setting variants use the 'F' pipelines rather than 'I'. The others do use 'I' though, so perhaps a predicate would work here.


================
Comment at: llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td:993
+// Arithmetic, LSR/ASR/ROR shift or LSL shift > 4
+def : SchedAlias<WriteISReg, V2Write_Arith>;
+
----------------
Same issue with single-cycle flag setting variants using 'F' pipelines.


================
Comment at: llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td:1015
+// Logical, shift, flagset
+def : InstRW<[V2Write_Logical], (instregex "^(AND|BIC)S[WX]rs$")>;
+
----------------
These also use the 'F' pipelines in the NOLSL case.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D151894



More information about the llvm-commits mailing list