[PATCH] D78129: Add Marvell ThunderX3T110 support

Sjoerd Meijer via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed May 6 11:19:57 PDT 2020


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





More information about the cfe-commits mailing list