stelios-arm marked 4 inline comments as done.
stelios-arm added inline comments.


================
Comment at: clang/lib/Basic/Targets/AArch64.cpp:363
 
+  if (HasRandGen)
+    Builder.defineMacro("__ARM_FEATURE_RNG", "1");
----------------
SjoerdMeijer wrote:
> Where/when is `HasRandGen` set?
Oh, I forgot to set it, I am going to address this in the new revision. 


================
Comment at: clang/test/Preprocessor/init-aarch64.c:28
 // AARCH64-NEXT: #define __ARM_FEATURE_NUMERIC_MAXMIN 1
+// AARCH64-NEXT: #define  __ARM_FEATURE_RNG 1
 // AARCH64-NEXT: #define __ARM_FEATURE_UNALIGNED 1
----------------
SjoerdMeijer wrote:
> Why are we expecting this here? Are we not only expecting this for v8.5?
> 
> We also need a negative test and CHECK-NOT of this where we don't expect this.
Correct this shouldn't be here. I am going to address this in a new revision. 


================
Comment at: llvm/lib/Target/AArch64/AArch64InstrFormats.td:1495
   let DecoderNamespace = "Fallback";
+  let Defs = [NZCV];
 }
----------------
SjoerdMeijer wrote:
> SjoerdMeijer wrote:
> > dmgreen wrote:
> > > SjoerdMeijer wrote:
> > > > dmgreen wrote:
> > > > > SjoerdMeijer wrote:
> > > > > > Do all MRS instructions do this?
> > > > > No, but some do and it's not obvious which ones do and don't. I think 
> > > > > it should be reasonable to always def NZCV here, even if they are 
> > > > > just dead. It should be very rare that it would be beneficial for 
> > > > > NZCV to be live across a MRS instruction.
> > > > True, but since creating another definition is cheap, what would the 
> > > > cons be of:
> > > > 
> > > >   class MRS_NZCV : MRSI {
> > > >     ..
> > > >     let Defs = [NZCV];
> > > >   }
> > > > 
> > > > The way I look at it is that the description would be more accurate?
> > > I believe that would have an over-lapping definition with the existing 
> > > MRS instruction?
> > > 
> > > It would need to be a pseudo I think, which would eventually be turned 
> > > into a MSR proper late enough on the pipeline for it to be valid (or the 
> > > other way around, the no-nzcv version gets turned into a the nzcv version 
> > > to keep the verifier happy).
> > > 
> > > It could also be a optional def, but those are only used in the arm 
> > > backend and I would not recommend using them anywhere else.  I would 
> > > probably suggest just setting MRS as a NZCV setting instruction, unless 
> > > we find a reason to need to implement it differently.
> > > I believe that would have an over-lapping definition with the existing 
> > > MRS instruction?
> > 
> > Ah yeah, that might be true.
> > 
> > > It would need to be a pseudo I think
> > 
> > How much work is adding a pseudo for this case? My first reaction would be 
> > just trying to model this correctly, then we potentially don't have to 
> > worry again later about this. 
> I just wanted to add that I don't have too strong opinions on this, but what 
> I suggested seemed more the correct, even though the consequence of setting 
> NCZV for all MRS is minimal. So I will leave this one up to you @dmgreen and 
> @stelios-arm .
I will talk with @dmgreen and if it is decided that it is needed to change, I 
will address it in a future revision. Please note that the next revision of 
patch, will not address this comment (temporarily). 


================
Comment at: llvm/lib/Target/AArch64/AArch64InstrInfo.td:1274
+def : Pat<(AArch64mrs imm:$id),
+          (MRS imm:$id)>;
+
----------------
dmgreen wrote:
> SjoerdMeijer wrote:
> > Nit: can be on the same line.
> I always prefer Pat's to have input and output lines separate, for what it's 
> worth. It makes them more easily readable.
The styling for Pat's is not consistent across the file, some are in one line 
and others have the input and output lines separate. I also prefer the latter 
for readability. 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D98264

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to