[PATCH] D44687: [SchedModel] Remove instregex entries that don't match any instructions (WIP)

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 21 03:05:01 PDT 2018


fhahn added subscribers: joelkevinjones, steleman, fhahn.
fhahn added inline comments.


================
Comment at: lib/Target/AArch64/AArch64SchedThunderX2T99.td:426
                        "AND?(W|X)r(i|r|s|x)",   "ANDS?(W|X)r(i|r|s|x)",
-                       "ADC?(W|X)r(i|r|s|x)",   "ADCS?(W|X)r(i|r|s|x)",
                        "BIC?(W|X)r(i|r|s|x)",   "BICS?(W|X)r(i|r|s|x)",
----------------
Those changes should be fine (and similar changes below), as they just remove invalid patterns.


================
Comment at: lib/Target/AArch64/AArch64SchedThunderX2T99.td:1264
 def : InstRW<[THX2T99Write_5Cyc_F01],
-            (instregex "^ANDv", "^BICv", "^EORv", "^MOVv", "^MVNv",
                        "^ORRv", "^ORNv", "^NOTv")>;
----------------
MOV (AdvSIMD) is an alias for INS. MVN is an alias of NOT. So I think to keep the model unchanged, we should use INS and NOT here. 

@joelkevinjones @steleman could you have a quick look to confirm?

Also, the comment just above needs updating.


================
Comment at: lib/Target/AArch64/AArch64SchedThunderX2T99.td:1516
 // ASIMD move, integer immed
-def : InstRW<[THX2T99Write_5Cyc_F01], (instregex "^MOVIv", "^MOVIDv")>;
 
----------------
Looks OK, MOVIv should match vector versions of MOVI.


Repository:
  rL LLVM

https://reviews.llvm.org/D44687





More information about the llvm-commits mailing list