SjoerdMeijer added a comment. In D78129#2022307 <https://reviews.llvm.org/D78129#2022307>, @joelkevinjones wrote:
> In email Wei asked for help about he following error message: > > error message from tblgen > Included from > /home/wei/project/tx3/llvm-project/llvm/lib/Target/AArch64/AArch64.td:439: > > /home/wei/project/tx3/llvm-project/llvm/lib/Target/AArch64/AArch64InstrInfo.td:961:5: > error: 'CycloneModel' lacks information for 'AUTDZA' > > def DZA : SignAuthZero<prefix_z, 0b10, !strconcat(asm, "dza")>; > ^ > In the end: > Incomplete schedule models found. > > · Consider setting 'CompleteModel = 0' while developing new models. > · Pseudo instructions can be marked with 'hasNoSchedulingInfo = 1'. > · Instructions should usually have Sched<[...]> as a superclass, > you may temporarily use an empty list. > · Instructions related to unsupported features can be excluded with > list<Predicate> UnsupportedFeatures = [HasA,..,HasY]; in the processor model. > error: Incomplete schedule model > > > And the comment from the person on the email was to define the instruction. > The instruction is defined, as evidenced when table gen is run to produce the > record-list. The error message can be suppressed by defining CompleteModele = > 0, but that isn't correct, as there are models for those instructions. > > However, I now note that at least In the output that Wei captured, it isn't > complaining about the ThunderX3T110 model, but about Cyclone. Hi Joel, Thanks for your message, and apologies for not replying earlier to the updates; missed the notification. I am now taking a closer at some changes I hadn't looked at. In the mean, some drive-by comments: It is okay'ish to set `CompleteModel = 0` if you're not interested in describing all instructions. The other way is of course to add the missing instruction to the model. But first things first. @chill commented earlier about predicates. I also don't think you need to add `HasV8_3a` for the reason Momchill described, and there is still one left AArch64InstrInfo.td. And while I am still looking into this, let me ask the question what I am wondering: why do you need to change the other scheduling models? These instructions are always supported, as a NOP, or otherwise. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78129/new/ https://reviews.llvm.org/D78129 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits