SjoerdMeijer added a comment.

Since debugging on phabricator is a bit difficult, I took the patch and had a 
little play. Now I actually remember seeing this before. I think the way this 
works is that when you describe new instructions (PA in this case) that other 
models don't have, they start complaining about incomplete models when they 
have set `let CompleteModel = 1`

I got things compiling with these changes:

1. leave all existing models untouched, revert those changes,

2. remove that predicate HasPA that you added,

3. Change this:

>   def SVEUnsupported : AArch64Unsupported {
>   let F = [HasSVE, HasSVE2, HasSVE2AES, HasSVE2SM4, HasSVE2SHA3,
>   -           HasSVE2BitPerm];
>   +           HasSVE2BitPerm, HasPA];
>   }



4. In your new model set:

>   let CompleteModel         =   0;
>   list<Predicate> UnsupportedFeatures = SVEUnsupported.F;



5. This is where the problem is, comment out these descriptions in your model:

>   //def : InstRW<[THX3T110Write_7Cyc_I1],
>   //            (instrs AUTDA, AUTDB, AUTDZA, AUTDZB, AUTIA, AUTIA1716, 
> AUTIASP,
>   //                    AUTIAZ, AUTIB, AUTIB1716, AUTIBSP, AUTIBZ, AUTIZA, 
> AUTIZB,
>   //                    PACDA, PACDB, PACDZA, PACDZB, PACGA, PACIA, PACIA1716,
>   //                    PACIASP, PACIAZ, PACIB, PACIB1716, PACIBSP, PACIBZ,
>   //                    PACIZA, PACIZB, XPACD, XPACI, XPACLRI)>;

I have never really looked into these instructions, and quick grep doesn't show 
any descriptions for some. For example, AUTDA doesn't exist. The others look 
aliases, perhaps they need a different treatment, or a regexp, I don't know, 
but perhaps you can take it from here.


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

Reply via email to